Предположим, что мне нужно создать объект, использование которого может установить много значений, например, 10 значений. И этот объект имеет другие значения, которые устанавливаются системой в соответствии со значениями, заданными uesr.
Является ли хорошей идеей создать весь тест, выполнив все возможные комбинации значений, которые может установить пользователь? Потому что в этом случае, если значение может иметь 5 возможных значений, еще 3, еще 6 ... все комбинации могут быть очень большими, хотя для небольшого метода.
Другой случай - это свойство, которое устанавливается система и не зависит от значений, которые может установить пользователь, например, дата модификации. Например:
MyClass
{
Property01;
Property02;
Property03;
ModificationDate;
}
method01(int param01, int param02, paramObject)
{
paramObject.ModificationDate = DateTime.Now;
if(param01 < 0 && param02 > 0)
{
paramObject.ModificationDate = new DateTime(2000, 01, 01);
}
}
В этом случае, если я не проверю все возможные значения типа int или, по крайней мере, когда оно меньше 0 и больше 0, я не могу найти ошибка, потому что исключено, что я тестирую только случай, когда param01 больше 0, я не смог бы обнаружить ошибку.
Но этот случай прост, что произойдет, если у меня будет больше параметров, или больше возможных значений для параметров? Комбинация была бы такой большой на самом деле.
В общем, я хотел бы узнать некоторую распространенную практику для тестирования объектов, которые могут иметь много значений, потому что в начале я начал обдумывать возможность попробовать все возможные комбинации всех Возможные значения параметров, но в некоторых случаях это объем работы, который заставляет меня задуматься, если нет лучшего подхода.
Спасибо.