У меня есть коллега, который пишет модульные тесты для объектов, которые заполняют свои поля случайными данными. Его причина в том, что он дает более широкий спектр тестов, так как он будет тестировать множество разных значений, тогда как обычный тест использует только одно статическое значение.
Я дал ему несколько разных причин против этого, основными из которых являются:
- случайные значения означают, что тест не является действительно повторяемым (что также означает, что если тест может случайно выйти из строя, он может сделать это на сервере сборки и сломать сборку)
- Если это случайное значение и тест не выполняется, нам необходимо: a) исправить объект и b) заставить нас каждый раз проверять это значение, поэтому мы знаем, что он работает, но поскольку он случайный, мы не знаем, что значение было
Добавлен еще один сотрудник:
- Если я тестирую исключение, случайные значения не гарантируют, что тест завершится в ожидаемом состоянии
- случайные данные используются для очистки системы и тестирования нагрузки, а не для модульных тестов.
Может ли кто-нибудь добавить дополнительные причины, чтобы я мог заставить его прекратить это делать?
(Или, альтернативно, это приемлемый метод написания модульных тестов, и я и мой другой коллега ошибаются?)