Трябва да се обадя на Тест от различна единица доизползвайте в текущата си единица (по единица имам предвид класа). Има ли NUnit инфраструктура за това или трябва просто да продължа да правя това, което правя, да инстанциирам класа и да се позовавам на метода?
Благодаря!
Отговори:
2 за отговор № 1Ако те разбирам правилно, имаш единицатест в клас 1 и в рамките на който искате да проведете тест за единица в клас2. Понастоящем в рамките на теста на Class1 вие инстанциирате Class2 и извиквате метода за тестване. Вие предпочитате теста Class1 да направи нещо като "Nunit.RunTest (Class2.MyTest)".
Доколкото ми е известно, няма начин да направите товаNUnit. Ако имате общ код, който искате да използвате на няколко места, най-лесният начин е да създадете отделен метод, който и двете тестове могат да се обадят. Недостатъкът е, че няма да можете да споделяте методите за настройка и теоретични за двете.
Ако трябва да пуснете Setup и Teardown и за двата теста, предложението на Steve Gilham за използване на наследство може да е по-добър подход.
Като цяло, обаче, трябва да изпълнявате всички тестове на единици, когато се променят кодовете. Всеки тест трябва да се провежда на негова основа - наистина ли трябва да се обадите на един тест от друг?
0 за отговор № 2
Бихте ли разяснили какъв е случаят тук?
Най-очевидният автоматичен метод е наследството. Ако текущата тестова класа подкласира останалите класове, всички тестове ще бъдат изтеглени автоматично. Това е полезно за тестване на йерархии на обекти, където тестовият клас на единиците за базовия клас сам по себе си е основният клас за тестовите класове за всеки получен клас.