Я пришел к чему-то перекрестку. Недавно я написал приложение на 10 000 строк без TDD (ошибка, которую я знаю). Я определенно столкнулся с очень большим количеством ошибок, но теперь я хочу модифицировать проект. Вот проблема, с которой я столкнулся. Давайте пример функции, которая делает деление:Как работает TDD с исключениями и параметризацией?
public int divide (int var1, int var2){
if (var1 == 0 || var2 == 0)
throw new RuntimeException("One of the parameters is zero");
return var1/var2;
}
В этой ситуации я выбрасываю ошибку времени выполнения, так что я могу не и по крайней мере узнать, что мой код сломался где-то. Вопрос в 2 раза. Во-первых, я правильно использую исключения здесь? Во-вторых, как написать тест для работы с этим исключением? Очевидно, я хочу, чтобы он прошел тест, но в этом случае он собирается выбросить исключение. Не слишком уверен, как это можно было бы с этим справиться. Есть ли другой способ, с которым обычно обрабатывается TDD?
Благодаря
IllegalArgumentException (или эквивалент, если не Java) следует использовать вместо обычного RuntimeException. –
Вы не можете модифицировать TDD на существующий код. Вы можете написать модульные тесты для существующего кода, но это не TDD. TDD - это ** проект **, в котором вы сначала пишете тесты ** **. Я бы предложил написать модульные тесты для основных публичных интерфейсов вашего существующего кода и рассмотреть возможность использования TDD при добавлении новых классов или методов. – TrueWill