Przejdź do treści głównej
INF.04Pytanie #337 z 856frameworki-testowe-i-asercje

Przedstawione listingi zawierają implementację funkcji oraz zdefiniowany jeden test automatyczny sprawdzający zachowanie funkcji w przypadku, gdy argumentem jest wartość ujemna. W miejscu kropek należy wstawić drugi test sprawdzający działanie funkcji, gdy argumentem jest wartość dodatnia. Który z kodów odpowiada temu testowi?

Opcje odpowiedzi:
A
A
B
B
C
C
Prawidłowa
D
D
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: C

Uzasadnienie i szersze wyjaśnienie:

Przeanalizujmy działanie funkcji fun1(number):

  • Funkcja ta oblicza wartość bezwzględną podanej liczby.
  • if (number < 0): Jeśli liczba jest ujemna, jest mnożona przez -1, co daje jej wartość dodatnią.
  • W przeciwnym wypadku (jeśli liczba jest dodatnia lub równa zero), funkcja zwraca ją bez zmian.

Teraz przeanalizujmy, który test prawidłowo weryfikuje działanie funkcji dla argumentu dodatniego:

  • Kod C:
    • const result = fun1(2);: Wywołuje funkcję z argumentem 2. Zgodnie z logiką funkcji, powinna ona zwrócić 2.
    • expect(result).toBe(2);: Instrukcja ta sprawdza, czy result (czyli wynik działania funkcji) jest równy 2. Test zakończy się powodzeniem (pass), ponieważ 2 jest równe 2. Jest to poprawnie napisany test dla przypadku, gdy argument jest dodatni.

Dlaczego pozostałe odpowiedzi są nieprawidłowe?

  • A: Oczekuje, że wynik będzie o 1 większy od samego siebie (result+1), co jest logicznie niemożliwe. Test zakończy się niepowodzeniem (fail).
  • B: Wywołuje fun1(2), a oczekuje wyniku -2. Funkcja zwraca 2, więc test zakończy się niepowodzeniem.
  • D: Wywołuje fun1(1), a oczekuje wyniku -1. Funkcja zwraca 1, więc test zakończy się niepowodzeniem.

Chcesz poćwiczyć całą kwalifikację INF.04?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

Podobne pytania z działu „Frameworki testowe i asercje”

Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 7 pytań z tego działu.