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 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 odpowiednio 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
Przygotuj środowisko testowe:
w konstruktorze klasy testowej utwórz obiekt Słownik, który będzie dostępny dla każdej metody testowej i dodaj do słownika 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
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 MemberData
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ą tekst, który po wyodrębnieniu słów jest dodawany do słownika. Obiekty implementujące ten interfejs są dostarczane do klasy słownika poprzez argument metody Czytaj
.
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
Użyj biblioteki Moq do zweryfikowania, że metoda Czytaj
wywoła metodę CzytajTekst
interfejsu IFileReader
tylko 1 raz
Zainstaluj rozszerzenie Xunit.net do R# i utwórz sesję zawierającą wszystkie testy z projektu i uruchom wszystkie testy
Wykonaj analizę pokrycia kodu testami jednostkowymi i sprawdz, które fragment kodu wymagają jeszcze przetestowania. Napisz brakujące testu, tak aby poziom pokrycia całego kodu był nie mniejszy niż 80%
Spróbuj powtórzyć podobny scenariusz testowania korzystając z NUnit lub/i MS Test
Skonfiguruj definicję buildu w TFS zawierający automatyczne przeprowadzenie testów jednostkowych po stronie serwera po każdej zatwierdzonej zmianie.
Korzystając z dowolnego frameworku do testów jednostkowych przygotuj testy jednostkowe dla metod z modelu i modelu widoku dla wybranej aplikacji z zajęć dotyczących WPF lub Aplikacje Uniwersalne