Słyszeliście o różnych bibliotekach do testowania? Jedną z wartych uwagi bibliotek jest FluentAssertions.
Składnia
Główna rzecz, jaka ją rozróżnia, to specyficzna składnia składająca się metod Should() i Be():
string test = "test"; test.Should().Be("test");
Sprawdzenie, czy obiekt jest nullem
object testObject = null; testObject.Should().BeNull("the value is null"); testObject.Should().NotBeNull();
Sprawdzenie wartości bool
bool testBoolean = false; testBoolean.Should().BeFalse("the value is false");
Sprawdzenie, czy został rzucony wyjątek
Action act = () => subject.Foo(null); act.Should().Throw().And.ParamName.Should().Be("message");
Porównywanie obiektów
To wszystko jest fajne, ale jest jedna główna funkcjonalność, która mnie osobiście przekonała. Mianowicie funkcjonalność pozwalająca przyrównać dwa obiekty, bez porównywania „na piechotę” ich właściwości:
object1.Should().BeEquivalentTo(object2);
W domyśle biblioteka automatycznie rekursywnie porównuje wszystkie propercje (również w zagnieżdżonych obiektach). Jeśli nie chcemy tego, wystarczy napisać:
object1.Should().BeEquivalentTo(object2, options => options.ExcludingNestedObjects());
Dzięki tej bibliotece sekcja assert w testach wygląda dużo czytelnej niż zwykła klasa Assert.
Podoba Ci się to, co tworzę? Chcesz dostawać informacje o:
– wydarzeniach, które organizuję lub wspieram (np. konferencje, meetupy, webinary)
– inicjatywach, które organizuję lub wspieram (np. GeekWeekWro, DevAdventCalendar)
– moich prelekcjach, kursach i szkoleniach
– wyróżnionych artykułach z mojego bloga
0% SPAMu, 100% informacji! Krótko i na temat.