Testy jednostkowe – biblioteka FluentAssertions

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.

Dodaj komentarz