Testy jednostkowe

Ćwiczenia

Połącz się z projektem zespołowym npr w kolekcji sandbox i pobierz projekt Slownik (także do pobrania Tutaj).

Korzystając z frameworku Xunit.net stwórz testy jednostkowe do wszystkich metod w klasie Slownik

utwórz projekt zawierający testy i dodaj referencję do biblioteki xunit.net

za pomocą nuget zainstaluj oprogramowanie do uruchamianie testów xunit.net w Visual Studio

napisz test sprawdzający czy dodanie kilku przykładowych słów do słownika odpwiedno ustawi liczniki słów (IloscSlow, IloscWszystkichSlow)

napisz test sprawdzający czy dodanie pustego napisu do słownika nie zwiększy liczby słów

napisz test sprawdzający czy brak wyrazu (null) podany jako argument DodajSlowo rzuca wyjątek ArgumentNullException()

napisz test sprawdzający metodę ListaSłow za pomocą asercji porównujących kolekcje

ustaw w konstruktorze środowisko testowe: utwórz obiekt Słownik i dodaj kilka przykładowych słów

ustaw w środowisko testowe implementując interfejs IUseFixture<T>

dla jednego z testów ustaw własność Skip atrybutu Fact aby test został zignorowany

dla jednego z testów ustaw własność Timeout atrybutu Fact zabezpieczający przez zbyt długim wykonywaniem

Utwórz testy Data-Driven-Test (atrybut Theory) to przetestowania tych samych metod

Wykorzystaj atrybut InlineData do przetwstowania poprawności zawartości słownika dla danych

Ala ma kota
Ala Ala ma kota
"" (pusty łańcuch znakowy)
ala Ala ALA ma kota
kota ma ala ala

Spróbuj uzyskać to samo za pomocą atrybutu PropertyData

Dodaj referencję do AutoFixture i wygeneruj słownik zawierający 3 elementy o losowych wartościach, przetestuj poprawność wyniku otrzymanego z własności IloscSlow

Przekształć metodę Czytaj w taki sposób aby wyizolować ze środowiska testowego odczyt zewnętrznego pliku tekstowego.

Zaimplementuj interfejs IFileReader, która wymusza implementację metody

string CzytajText()

. Obiekty implementujące ten interfejs zwracają test przeczytany, np. z pliku. Obiekty niech będą dostarczane do słownika za pomocą metody Czytaj, która parsuje zawartość otrzymanego łańcucha znakowego i umieszcza słowa w słowniku.

Użyj biblioteki Moq do przygotowania atrapy, która dostarczy do słownika pewien tekst (np. „Ala_ma_kota!”) i przetestuje poprawność oczekiwanych wyników

Zainstaluj rozszerzenie Xunit.net do R# i utwórz sesję zawierającą wszystkie testy z projektu i uruchom wszystkie testy

Spróbuj powtórzyć podobny scenariusz testowania korzystając z NUnit lub/i MS Test