Изглежда, че това, което възнамерявате да направите, е повече тест за интеграция, отколкото тест за единица. Не е за определяне на формулировката, но има значение. Единичното тестване означава методи за тестване изолирано, в среда, наречена фиксиране, създадена само за един тест, завършена и след това изтрита. Друг екземпляр на приспособлението ще бъде пресъздадено, ако следващият случай изисква същото приспособление. Това се прави, за да се изолират тестовете, така че грешка в един тест да не повлияе на резултата от следващите тестове.
Обикновено един тест има три стъпки:
- Подредете - подгответе приспособлението: инстанцирайте класа, който ще бъде тестван, евентуално необходими други обекти
- Действайте - извикайте метода, който ще се тества
- Утвърждавайте - проверете очакванията
Единичните тестове обикновено стоят настрана от външни ресурси като файлове и бази данни. Вместо това се използват фалшиви обекти за задоволяване на зависимостите на тествания клас.
Въпреки това, в зависимост от типа на вашето приложение, можете да опитате да стартирате тестове от самото приложение. Това не е „чисто“ тестване на единици, но може да бъде ценно така или иначе, особено ако кодът не е написан с мисъл за тестване на единици, може да не е достатъчно „гъвкав“, за да бъде тестван на единици.
Това се нуждае от специален режим на изпълнение, с параметър "-test" например, който ще инициализира приложението нормално и след това ще извика тестове, които ще симулират входове и ще използват твърдения, за да проверят дали приложението реагира според очакванията. По същия начин може да е възможно да се извика кодът за изключване и да се провери с твърдения дали връзката с базата данни е затворена (ако обектите не са изтрити).
Този подход има няколко недостатъка в сравнение с модулните тестове: зависи от конфигурационните файлове (софтуерът може да се държи различно в зависимост от параметрите), от базата данни (от нейното съдържание и от възможността за свързване с нея), тестовете не са изолирани ... Първите две могат да бъдат преодолени с помощта на стойности по подразбиране за конфигурацията и свързване към тестова база данни в режим тест.
person
philant
schedule
05.01.2010