Spójrz na raport JUnit. JUnit jest już zorganizowany według pakietów. Każdy pakiet ma (lub może mieć) klasy TestSuite, z których każda z kolei uruchamia wiele TestCases. Każda TestCase może mieć wiele metod testowych formularza public void test*()
, z których każda faktycznie stanie się instancją klasy TestCase, do której należą. Każda metoda testowa (instancja TestCase) ma nazwę i kryteria zaliczenia / niepowodzenia.
To, czego wymaga moje zarządzanie, to koncepcja poszczególnych elementów TestStep , z których każdy zgłasza własne kryteria zaliczenia / niepowodzenia. Niepowodzenie jakiegokolwiek kroku testowego nie może uniemożliwić wykonania kolejnych kroków testowych.
W przeszłości programiści testów na moim stanowisku organizowali klasy TestCase w pakiety odpowiadające częściom testowanego produktu, tworzyli klasę TestCase dla każdego testu i uczynili każdą metodę testową osobnym „krokiem” w teście, wraz z własnymi kryteriami pozytywnego / negatywnego wyjścia JUnit. Każda TestCase jest samodzielnym „testem”, ale poszczególne metody lub „kroki” testowe w ramach TestCase muszą występować w określonej kolejności.
Metody TestCase były etapami TestCase, a projektanci testów otrzymali osobne kryterium zaliczenia / niepowodzenia na krok testu. Teraz kroki testowe są pomieszane, a testy (oczywiście) kończą się niepowodzeniem.
Na przykład:
Class testStateChanges extends TestCase
public void testCreateObjectPlacesTheObjectInStateA()
public void testTransitionToStateBAndValidateStateB()
public void testTransitionToStateCAndValidateStateC()
public void testTryToDeleteObjectinStateCAndValidateObjectStillExists()
public void testTransitionToStateAAndValidateStateA()
public void testDeleteObjectInStateAAndObjectDoesNotExist()
public void cleanupIfAnythingWentWrong()
Każda metoda testowa potwierdza i zgłasza swoje własne kryteria pozytywnego / negatywnego wyniku. Zebranie tego w „jedną wielką metodę testową” w celu zamówienia traci szczegółowość kryteriów pozytywnych / negatywnych każdego „kroku” w raporcie podsumowującym JUnit. ... i to denerwuje moich menedżerów. Obecnie domagają się innej alternatywy.
Czy ktokolwiek może wyjaśnić, w jaki sposób JUnit z kodowaniem kodowanym metodą testową obsługiwałby osobne kryteria zaliczenia / niepowodzenia dla każdego kolejnego etapu testu, jak pokazano powyżej i jest wymagane przez moje kierownictwo?
Niezależnie od dokumentacji uważam to za poważną regresję w środowisku JUnit, która utrudnia życie wielu programistom testów.