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?
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?
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 argumentem2. Zgodnie z logiką funkcji, powinna ona zwrócić2.expect(result).toBe(2);: Instrukcja ta sprawdza, czyresult(czyli wynik działania funkcji) jest równy2. Test zakończy się powodzeniem (pass), ponieważ2jest równe2. 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 zwraca2, więc test zakończy się niepowodzeniem. - D: Wywołuje
fun1(1), a oczekuje wyniku-1. Funkcja zwraca1, 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.
Pojęcia z tego pytania
- Instrukcje w językach programowaniaPodstawowe elementy składniowe języka programowania nakazujące procesorowi wykonanie określonej czynności: deklaracji, przypisania, rozgałęzienia lub powtórzenia.
- Funkcje, Metody i Przekazywanie ParametrówWydzielone, nazwane bloki kodu realizujące określone zadanie, przyjmujące parametry wejściowe i opcjonalnie zwracające wartość wyniku za pomocą instrukcji return.
- Zmienne i Stałe w programowaniuNazwane obszary pamięci operacyjnej przechowujące dane robocze programu; zmienne pozwalają na modyfikację wartości podczas działania, podczas gdy stałe mają wartość niezmienną.
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.
- #257
Która cecha wyróżnia framework od biblioteki?
- #363
Testy jednostkowe składają się z trzech głównych faz w kolejności
- #392
Które narzędzie może być używane do automatycznego testowania aplikacji webowych?
- #617
Na zrzucie ekranu przedstawionym na ilustracji, pod kodem źródłowym znajduje się okno:
- #646
Który z poniższych frameworków jest najpopularniejszym i de facto standardem do tworzenia i uruchamiania testów jednostkowych w języku Java?