Rozdział 8 - Testowanie kodu - Zadania

Pisząc testy w poniższych zadaniach, pamiętaj o:

  • wzięciu pod uwagę różnych przypadków testowych i rozdzieleniu ich na osobne metody testujące,
  • odpowiednim nazewnictwie metod testujących,
  • ustrukturyzowaniu metod testujących w taki sposób, by były czytelne i jasno przekazywały, na jakim przypadku testowym działają,
  • napisaniu metody, którą będziesz testował, w taki sposób, by była testowalna.

Testy czyParzysta

Napisz testy oraz metodę, która odpowiada na pytanie, czy podana liczba jest parzysta.

Testy sprawdzania znaku liczby

Napisz testy oraz metodę, która przyjmuje liczbę całkowitą jako argument i zwraca:

  1. -1, jeżeli podana liczba jest ujemna,
  2. 0, jeżeli podana liczba jest równa 0,
  3. 1, jeżeli podana liczba jest dodatnia.

Testy zwracania indeksu szukanego elementu

Napisz testy oraz metodę, która przyjmuje jako argument tablicę liczb oraz liczbę i zwraca indeks w tej tablicy, pod którym znajduje się liczba podana jako drugi argument. Jeżeli podanej liczby nie ma w tablicy, metoda powinna zwrócić liczbę -1. Przykłady:

  1. Dla argumentów { 1, 10, 200, 1000 }, 200 – metoda powinna zwrócić 2, ponieważ liczba 200 jest trzecim elementem podanej tablicy, a jej indeks to 2 (bo, jak na pewno pamiętamy, indeksy zaczynamy liczyć od 0).
  2. Dla argumentów { 1, 10, 200, 1000 }, 500 – metoda powinna zwrócić -1, ponieważ liczby 500 nie ma w podanej tablicy.

Rozwiązania do zadań

Komentarze (2):

  1. Cześć, w rozwiązaniu zadania "Testy czyParzysta" widzę dwa problemy. Pierwszy, w metodzie assertEquals(), podczas wyświetlania komunikatu, zmienne expected i actual są zamienione miejscami. Wydaje mi się, że ta linijka powinna wyglądać następująco: System.out.println("Spodziewano sie " + expected + ", ale otrzymano: " + actual);. Drugim problemem, wykorzystując metodę assertEquals(), nie wiadomo który test nie wypadł pomyślnie w przypadku wystąpienia błędu - komunikat jest zbyt ogólny.

    1. Cześć, faktycznie pomyliłem się i te dwie wartości są zamienione miejscami, dziękuję za wskazanie błędu. Odnośnie komunikatu to w tym zadaniu chodziło o napisanie, w ramach praktyki, po prostu kilku testów. Można by dodać dodatkowy parametr - informację o danym teście jako String, ewentualnie inaczej napisać te testy. Pomyślę nad tym 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.