Przejdź do treści
Pewniak INF.04Średni

Testy jednostkowe metody

W arkuszu INF.04 ze stycznia 2026 trzecią częścią były testy jednostkowe metody rzutu kością. Schemat Arrange-Act-Assert i przypadki, o których zdający zapominają najczęściej.

Testy jednostkowe weszły do arkuszy INF.04 na dobre i są częścią, którą najłatwiej zdobyć, a najczęściej się ją pomija z braku czasu. Sam schemat testu jest krótki i powtarzalny — warto go napisać nawet pobieżnie, bo punkty liczą się za każdy poprawny przypadek osobno.

1. Schemat Arrange – Act – Assert

Każdy test składa się z trzech kroków: przygotuj dane, wykonaj testowaną operację, sprawdź wynik.

[TestMethod]
public void Rzut_ZwracaWartoscWZakresie()
{
  // Arrange
  Kosc kosc = new Kosc(6);

  // Act
  int wynik = kosc.Rzut();

  // Assert
  Assert.IsTrue(wynik >= 1 && wynik <= 6);
}

Nazwa metody testowej powinna mówić, co jest sprawdzane. Rzut_ZwracaWartoscWZakresie niesie informację, Test1 nie niesie żadnej — a czytelność nazw bywa punktowana.

2. Przypadki, o których się zapomina

  • Wartości brzegowe. Dla zakresu od 1 do 6 sprawdź, czy 1 i 6 są osiągalne, a 0 i 7 nigdy nie występują.
  • Dane niepoprawne. Czy konstruktor odrzuca kość o dwóch ścianach? Test oczekujący wyjątku to pełnoprawny przypadek testowy.
  • Powtarzalność. Wielokrotne wywołanie w pętli pokazuje, że metoda nie zwraca w kółko tej samej wartości.
  • Wartość pusta. Dla metod przyjmujących tekst zawsze sprawdź null i pusty ciąg.
[TestMethod]
public void Konstruktor_OdrzucaZaMalaLiczbeScian()
{
  Assert.ThrowsException<ArgumentException>(() => new Kosc(2));
}

3. Czego egzaminator nie zaakceptuje

  • Testu bez asercji. Metoda, która tylko wywołuje kod i nic nie sprawdza, nie jest testem.
  • Wypisywania wyniku na konsolę zamiast Assert. Test ma przechodzić lub nie przechodzić automatycznie.
  • Jednego testu na wszystko. Każdy przypadek osobno — inaczej po pierwszym niepowodzeniu reszta się nie wykona.
  • Testów zależnych od kolejności. Każdy musi działać samodzielnie, na własnych danych.

Klasę, którą tu testujemy, budowaliśmy w pewniaku o klasie z konstruktorem.