2010-08-23 2 views
5

Я знаю, что этот вопрос очень похож на других, которые были опубликованы раньше, но я хотел бы обсудить эту тему надлежащим образом.Аргумент Исключения должны быть проверены модулем?

Считаете ли вы, что «очевидное» исключение должно быть проверено на единицу?

С очевидным исключением я имею в виду, например, исключения из-за нулевых аргументов или пустых строк или отрицательных чисел в ситуациях, когда мы, бизнес-логика нашего подразделения, делаем очевидным, что эти исключения всегда будут выбрасываться в начале нашего метода) перед любой другой операцией.

Другими словами, я говорю об исключениях, которые должны быть брошены после нарушения простейшей части классового контракта.

Благодарим за ваше мнение.

ответ

1

Обычно я включаю эти тесты. Его действительно хорошее место для начала разработки, потому что, если вы используете TDD, вы можете провести простейший тест, чтобы начать писать производственный код, и если вы не используете TDD, у вас есть хороший тест прохождения:

8

Абсолютно. Вы называете их «очевидными», но нет ничего очевидного в том, чтобы помнить о предварительных условиях. Фактически, большая часть кода, который я видел в моей карьере, не делает этого очевидного шага, чтобы предотвратить хаос позже.

Несмотря на то, что вы часто это видите в библиотечном коде, написанном для общественного потребления, повторного использования и т. Д., Помня о том, чтобы поместить такие проверки в свой собственный код, часто кажется скользким для большинства разработчиков. В тестовой среде тестирование тестов для таких условий заставляет разработчиков правильно проверять входные параметры на своих общедоступных методах.

И давайте будем честными ... любой шанс, который я получаю, написать еще один тест и увидеть зеленый бар, я счастлив. :)

0

Да, вы должны тестировать даже самую простую логику в ваших геттерах и сеттерах. Если этот код изменяется во время рефакторинга, вы хотите, чтобы система безопасности тестового блока была установлена, чтобы не было сделано никаких ошибок. Запуск тестов - это очень быстрый способ найти эти ошибки, как только они будут сделаны.

Единственный раз, когда я не тестирую геттеры и сеттеры, это то, что они делают только простое назначение или возврат значения.

3

Я всегда также написать тест для таких «простых, очевидных» вещей, главным образом потому, что

  • по тесту для этих «очевидных» ситуаций, как правило, написан очень быстро, и поэтому я почти быстрее быстро писать ее, а не думать о том, о том, чтобы поставить тест или нет
  • простой тест лучше, чем отсутствие теста
  • тест для будущих изменений. Испытание гарантирует, что любой другой разработчик в моей команде не нарушит мой код во время рефакторинга/исправления ошибок и т. Д.
Смежные вопросы