Testy jednostkowe
Ćwiczenia
- Połącz się z projektem zespołowym
npr
w kolekcjisandbox
i pobierz projektSlownik
(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 argumentDodajSlowo
rzuca wyjątekArgumentNullException()
- 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
atrybutuFact
aby test został zignorowany - dla jednego z testów ustaw własność
Timeout
atrybutuFact
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ściIloscSlow
- 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