Egzamin zawodowyPortal części pisemnej

INF.04 · pytanie 139

Przedstawione kody zawierają realizację funkcji oraz jeden zdefiniowany test automatyczny, który weryfikuje działanie funkcji w przypadku, gdy argumentem jest liczba ujemna. W miejsce kropek należy dodać drugi test, który sprawdzi funkcjonalność funkcji, kiedy argumentem jest liczba dodatnia. Który z poniższych kodów jest odpowiedni do tego testu? export function fun1(number) { if (number < 0) number = number * (-1); return number; } | describe('fun1', () => { it('test1', () => { const result = fun1(-1); expect(result).toBe(1); }) ... }) it('test2', () => { const result = fun1(1); expect(result).toBe(result+1); }) | A. | it('test2', () => { const result = fun1(2); expect(result).toBe(-2); }) | B. it('test2', () => { const result = fun1(2); expect(result).toBe(2); }) | C. | it('test2', () => { const result = fun1(1); expect(result).toBe(-1); }) | D.

  1. AOdpowiedź CPoprawna
  2. BOdpowiedź B
  3. COdpowiedź D
  4. DOdpowiedź A

Wyjaśnienie

Poprawna odpowiedź to C ponieważ funkcja fun1 zwraca liczbę taką jaka jest z wyjątkiem sytuacji gdy liczba jest ujemna wtedy zwraca jej wartość bezwzględną Test C sprawdza wartość dodatnią 2 gdzie rezultat jest zgodny z oczekiwaniami i funkcja zwraca 2 co jest poprawnym wynikiem To testowanie zgodne z zasadą jednostkowych testów gdzie ważne jest aby funkcje były testowane na różne przypadki brzegowe w tym na wartości ujemne i dodatnie Implementacja jednostkowych testów pozwala na automatyczne sprawdzanie poprawności działania kodu co jest dobrą praktyką w programowaniu Szczególnie ważne jest aby testować funkcje krytyczne i te które mają potencjał do wystąpienia błędów związanych z nieoczekiwanymi danymi wejściowymi Przykład ten pokazuje jak ważne jest aby testy były dokładne i pokrywały różnorodne scenariusze użytkowania co pozwala na wczesne wychwycenie błędów i zapewnienie stabilności aplikacji W tej sytuacji testując wartość 2 zapewniamy że funkcja zachowuje się poprawnie dla wartości dodatnich co jest zgodne z oczekiwaniami programistycznymi