Аргумент Исключения должны быть проверены модулем? - PullRequest
5 голосов
/ 23 августа 2010

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

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

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

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

Спасибо за ваше мнение.

Ответы [ 4 ]

8 голосов
/ 23 августа 2010

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

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

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

3 голосов
/ 24 августа 2010

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

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

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

0 голосов
/ 23 августа 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...