Я изучаю разработку, основанную на тестах, и я хочу знать, что я должен делать, когда дело доходит до проверки валидации. Должен ли я создавать модульные тесты, которые проверяют каждую возможную комбинацию результатов проверки? Это кажется практически невозможным при работе с крупными объектами. Скажем, у меня есть модель лица с большим количеством атрибутов, некоторые с ограничениями, а именно -Должен ли я использовать код проверки работоспособности? Кажется непрактичным
@entity
public class MyClass extends Model {
@Constraints.Required
@Constraints.MaxLength(20)
public String attribute1;
@Constraints.Required
public String attribute2;
public float attribute3;
@Constraints.Required
public String attribute4;
@Constraints.Required
public String attribute5;
@Constraints.Max(100)
public int attribute6;
@Constraints.Required
public String attribute7;
...
...
...
}
Так я буду писать модульные тесты для проверки такого лица или это бессмысленно? Я могу запустить его через функцию Validator и получить количество неудачных проверок ... но если я буду строго разбираться в тестировании, я не должен делать это для всех возможных комбинаций недопустимых атрибутов, что повлечет за собой создание огромной суммы экземпляров для тестирования.
В этом случае это определенно кажется бессмысленным, и разве это не означает, что модульные тесты бессмысленны для любой проверки подлинности объекта? То есть если они бессмысленны для объекта с большим количеством атрибутов, они также должны быть бессмысленными для атрибута с несколькими атрибутами?
Другими словами, напишите один тест каждый, чтобы выполнить каждую ветвь кода, и включите тест для каждого исключения, которое может вызвать ваш код. На практике я обнаружил, что не каждый разработчик полностью тестирует чистый объект данных, подобный этому. Это зависит от того, хотите ли вы выразить требование с точки зрения теста. Речь идет о предпочтениях. –