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 :

Install-Package FluentAssertions

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.

bool result = Przelew.WykonajPrzelew(kontoNadawcy, kontoOdbiorcy, 100, "przelew testowy");

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

Assert.IsTrue(result);

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

result.Should().BeTrue();

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

int result = kontoNadawcy.Przelewy.Count(p => p.Opis == "przelew testowy");
Assert.AreNotEqual(0, result);

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

kontoNadawcy.Przelewy.Should().Contain(p => p.Opis == "przelew testowy");

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

kontoNadawcy.Przelewy.Should().NotBeNullOrEmpty().And.Contain(p => p.Opis == "przelew testowy");

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.

Dołącz do newslettera już dziś!
Zero spamu - tylko wartościowe treści!
Musisz już lecieć?
Zostaw swój adres e-mail i dołącz do BEZPŁATNYCH WEBINARÓW dotyczących SQLa!
  • „Jak uczyć się SQLa?” – 4 października
  • „SQL dla testerów” – 12 października