Rodzaje testów

0

Ostatnio na pewnej rozmowie dostałem algorytm i miałem napisać testy
biało-skrzynkowe i czarno-skrzynkowe.

Definicje tych pojęć znam, ale gorzej z praktyką.
Test biało-skrzynkowy to jeśli dobrze rozumiem to taki gdzie wywołuję funkcję i sprawdzam czy wynik jest zgodny z oczekiwanym?
A czarno-skrzynkowy?
Czy może odwrotnie.
Prośba by ktoś mnie oświecił (bez przeklejania definicji z wiki) co powinno się znaleźć w jednym a co w drugim.

0

To zależy od tego kodu co konkretnie powinno się tam znaleźć. Raczej tutaj można się domyślać, że pisząc biało-skrzynkowy test posiłkujesz się informacjami na temat implementacji np. możesz użyć mocka, by sprawdzić czy miało miejsce wywołanie jakiej istotnej funkcji z odpowiednimi parametrami. W ten sposób nie piszesz testu dla czegoś co zostało przetestowane. Natomiast pisząc czarno-skrzynkowy test raczej nie wiesz jak coś zostało zakodowane dlatego musisz napisać test, który wszystko sprawdza.

0

[quote]
jakiej istotnej funkcji z odpowiednimi parametrami
[/quote]
No właśnie tego nie rozumiem.
Wywołuję coś dostaję wynik i potem np
assertEquals sprawdzam czy to co dostałem pokrywa się z oczekiwanym.
Mam np jakis algorytm sortowania. No i jak do niego napisać test biało-skrzynkowy.
Nie chodzi mi o konkretną implementację testu tylko przykład jakiś żebym zrozumiał.

0

No ale co o mockowaniu?
Mock czyli "symulujacy" obiekt.
I co mi to daje, stworzę sobie takiego mocka no i wywołuję funkcję przekazując go jako parametr, tak?
Czym się to różni od tego co napisałem wyżej

1 użytkowników online, w tym zalogowanych: 0, gości: 1