Testy jednostkowe

  1. Połącz się z projektem zespołowym npr w kolekcji sandbox i pobierz projekt Slownik (także do pobrania Tutaj).
  2. 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
  3. 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
  4. 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
  5. Zainstaluj rozszerzenie Xunit.net do R# i utwórz sesję zawierającą wszystkie testy z projektu i uruchom wszystkie testy
  6. Spróbuj powtórzyć podobny scenariusz testowania korzystając z NUnit lub/i MS Test