Testy jednostkowe często uważane są za lepszą wersję dokumentacji projektu. Dzięki nim potrafimy sprawdzić logikę działania poszczególnych elementów aplikacji. Warto więc zadbać o to, żeby stały się jak najbardziej czytelne.

Jednym z narzędzi poprawiających czytelność testów jednostkowych jest Fluent Assertions. Pozwala ono na zastąpienie klasycznych asercji takimi, które pozwolą nam odczytać, co sprawdzamy.

Instalacja

W celu instalacji biblioteki możemy posłużyć się NuGetem. W VisualStudio klikamy na górnym pasku w Tools i wybieramy Package Manager Console (w zależności od wersji Visual Studio konsola znajduje się bezpośrednio w Tools lub po rozwinięciu NuGet Package Manager). Gdy pojawi nam się konsola należy wskazać projekt, do którego doinstaluje się rozszerzenie na liście rozwijanej Default project. Ostatnim krokiem jest wpisanie w konsoli :

Fluent Assertions zostanie pobrane i automatycznie dodane do referencji w projekcie.

Użycie

Biblioteka udostępnia zestaw metod w zależności od tego, na jakim typie obiektu ją wywołamy. Weźmy na warsztat prostą aplikację banku, która ma obiekty konto i przelew.

Za pomocą klasycznej asercji wyglądałoby to tak:

Dzięki Fluent Assertions możemy zrobić to prawie jak w języku naturalnym:

Sprawdźmy zatem, czy poprawnie wykonała się operacja i przelew znajduje się w historii transakcji:

Wykorzystamy teraz opisywaną bibliotekę, żeby sama asercja mówiła nam jak najwięcej o tym, co chcemy sprawdzić:

Możemy również sprawdzić kilka warunków:

Wiele praktycznych przykładów dostępnych jest w dokumentacji Fluent Assertions. Można tam znaleźć jak radzi sobie z różnymi typami obiektów i sporo ciekawych możliwości jej wykorzystania.

Fluent Assertions jest bardzo intuicyjnym i przydatnym narzędziem przy tworzeniu testów jednostkowych. Dzięki tej bibliotece nasze testy stają się na tyle czytelne, że wracając do nich po dłuższym czasie, nie trzeba specjalnie zagłębiać w kod. Jest to również na tyle zbliżone do języka naturalnego, że osoby nie mające pojęcia o programowaniu, dowiedzą się jak działają mechanizmy aplikacji.