Должны ли модульные тесты покрывать изменение констант? - PullRequest
0 голосов
/ 19 декабря 2018

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

И теперь у меня есть возможность изменить эти константы для модульного тестирования.Я просто добавлю некоторые функции с возвращением этих постоянных диапазонов и макет этой функции.Но я должен это сделать.

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

Так, другими словами, должно ли модульное тестирование покрывать значение констант?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Конечно, вы могли бы провести это тестирование прямо сейчас, но я рекомендую следовать принципу YAGNI: не тестируйте его сейчас, вы можете никогда не внести изменения.Однако, как только вы превратите эти константы в переменные, вам придется расширить свой набор тестов.Скорее всего, ваш набор тестов все равно будет нуждаться в обслуживании, но чтобы быть уверенным, что вы его не забудете, добавьте комментарий к константам или используйте другие формы напоминания ...

0 голосов
/ 19 декабря 2018

Фактический ответ будет зависеть от реализации и мнения и зависит от множества факторов.

Однако, общее правило, которое я использую, - если это истинный «параметр» (изменяющее значение, а не постоянное), его следует обрабатывать и проверять как таковой.Ака передает значение в качестве аргумента конструктора или метода.Не надо издеваться в этом случае.

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

Вам решать, должна ли эта «константа» рассматриваться как таковая или вместо этого параметр.

...