Jakie jest rzeczywiste zastosowanie „niepowodzenia” w przypadku testowym JUnit?
java
unit-testing
junit
junit4
Sanju
źródło
źródło
Powiedzmy, że piszesz przypadek testowy dla ujemnego przepływu, w którym testowany kod powinien zgłosić wyjątek.
źródło
Myślę, że typowym przypadkiem użycia jest wywołanie tego, gdy żaden wyjątek nie został zgłoszony w teście negatywnym.
Coś w rodzaju następującego pseudokodu:
źródło
Użyłem go w przypadku, gdy coś mogło pójść nie tak w mojej metodzie @Before.
źródło
@Before
metoda się powiodła, prawdopodobnie lepiej sprawdzić to bezpośrednio w tej metodzie. Jako bonus, przynajmniej JUnit i TestNG zgłoszą nawet inną awarię dla błędów z@Before
/@After
Methods, aby zobaczyć, że problem nie występował w samym teście.W ten sposób używam metody Fail.
Istnieją trzy stany, w których może zakończyć się Twój przypadek testowy
zamierzone (w przeciwieństwie do negatywnych przypadków testowych, które spodziewają się wystąpienia wyjątku).
Jeśli używasz zaćmienia, trzy stany są oznaczone odpowiednio zielonym, niebieskim i czerwonym znacznikiem.
W trzecim scenariuszu używam operacji niepowodzenia.
np .: public Integer add (integer a, Integer b) {return new Integer (a.intValue () + b.intValue ())}
źródło
fail()
.Ja na przykład używam
fail()
do wskazania testów, które jeszcze się nie zakończyły (zdarza się); w przeciwnym razie okazałyby się skuteczne.Wynika to prawdopodobnie z faktu, że nie jestem świadomy jakiejś niepełnej () funkcjonalności, która istnieje w NUnit.
źródło
W ustawieniach współbieżnych i / lub asynchronicznych możesz chcieć sprawdzić, czy określone metody (np. Delegaci, detektory zdarzeń, programy obsługi odpowiedzi, możesz je nazwać) nie są wywoływane. Pomijając drwiące frameworki, możesz wywołać
fail()
te metody, aby testy zakończyły się niepowodzeniem. Wygasłe limity czasu są kolejnym naturalnym stanem niepowodzenia w takich scenariuszach.Na przykład:
źródło
Najważniejszym przypadkiem użycia jest prawdopodobnie sprawdzanie wyjątków.
Chociaż junit4 zawiera oczekiwany element do sprawdzania, czy wystąpił wyjątek, wygląda na to, że nie jest częścią nowszej junit5. Kolejną zaletą używania w
fail()
porównaniu z programemexpected
jest to, że można go połączyć zfinally
umożliwieniem czyszczenia przypadków testowych.Jak zauważono w innym komentarzu. Posiadanie testu, który kończy się niepowodzeniem do czasu zakończenia implementacji, również brzmi rozsądnie.
źródło