Asercje wielokrotne w JUnit i NUnit

W tym filmie coś zarówno dla piszących testy w Javie jak i C#. Pokażę Ci do czego służą i jak tworzyć asercje wielokrotne zarówno w JUnit jak i NUnit.

Asercje wielokrotne w JUnit i NUnit. Co zobaczysz w filmie?

Możliwe, że zdarzyło Ci się użyć kilku asercji w jednym teście jedna po drugiej. W Selenium takim przykładem może być przejście na jakąś podstronę i upewnienie się, że pola formularza są odpowiednio ustawione np. jeżeli chodzi o aktywność przycisków, jak i np. to, czy pole jest obowiązkowe jeżeli powinno. W testach API możemy chcieć porównać różne fragmenty odpowiedzi osobno, szczególnie w przypadku obszernego response’a.

Minus tego rozwiązania jest taki, że przy wysypaniu się pierwszej asercji test się zakończy właśnie na tym etapie i kolejne asercje się nie wykonają. To nie daje nam pełnego obrazu “zniszczeń” i tracimy część informacji, które spokojnie moglibyśmy uzyskać gdybyśmy zastosowali rozwiązanie, o którym mówię na tym filmie, czyli asercje wielokrotne (grupowe).

JUnit oraz NUnit

Zarówno JUnit (Java) jak i NUnit (.NET) oferują rozwiązanie do wielokrotnych asercji. W JUnit możemy się posłużyć metodą assertAll, w której jako parametry przekazujemy poszczególne asercje. W NUnit możemy się posłużyć metodą Multiple, która przyjmuje jeden parametr typu TestDelegate.

Jak zbudować sobie taką asercję w obu bibliotekach pokazuję na filmie.

Linki

Na filmie wspomniałam, że informacje dotyczące delegat pojawiły się juz w jednej z poprzednich lekcji: było to tutaj.

Więcej informacji na temat samych bibliotek: dokumentacja JUnit 5, dokumentacja NUnit 3.