C# · Programowanie

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.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s