Должны ли положительные и отрицательные модульные тесты для одного метода проводить индивидуальные тесты?

Скажем, например, у меня есть метод, который проверяет
действительные почтовые индексы Великобритании. Я написал единичный
тест для этого метода, который проверяет, когда передается
правильный почтовый индекс Великобритании, метод возвращает
true.

Должен ли я создать отдельный модульный тест для проверки
неправильного почтового индекса Великобритании или сделать это в
одном модульном тесте?

благодаря

Вы должны создать отдельные тестовые примеры для каждого случая.
Это даст вам уверенность в том, что любой будущий код, который
вызывает этот метод, будет работать, также если вы рефакторинг, вы
можете точно увидеть, какой тест терпит неудачу, вместо того, чтобы
просто увидеть, как 1test терпит неудачу и не имеют понятия,
почему.



Лично я бы написал несколько тестов, которые проверяют, что он
работает правильно с разными типами допустимых почтовых индексов
(NE1 2XX, NE21 2XX, E1 3YY и т. Д., Проверяя различные допустимые
комбинации символов и чисел) и несколько неудачных тестов с
недопустимыми различные типы (например, NEI 3XX).



Я использую две функции: `test_valid_data()` и
`test_invalid_data()` и два набора данных, например
`valid_data []` и `invalid_data []` . Затем я
пишу четыре процедуры тестирования:

* test\_valid\_data(valid\_data[]) : *This test should
pass*
* test\_valid\_data(invalid\_data[]) : *This test should
fail*
* test\_invalid\_data(valid\_data[]) : *This test should
fail*
* test\_invalid\_data(invalid\_data[]) : *This test should
pass*

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