Как разработать модульные тесты для создания объекта, в котором пользователь может установить множество значений? - PullRequest
0 голосов
/ 25 февраля 2020

Предположим, что мне нужно создать объект, использование которого может установить много значений, например, 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, я не смог бы обнаружить ошибку.

Но этот случай прост, что произойдет, если у меня будет больше параметров, или больше возможных значений для параметров? Комбинация была бы такой большой на самом деле.

В общем, я хотел бы узнать некоторую распространенную практику для тестирования объектов, которые могут иметь много значений, потому что в начале я начал обдумывать возможность попробовать все возможные комбинации всех Возможные значения параметров, но в некоторых случаях это объем работы, который заставляет меня задуматься, если нет лучшего подхода.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...