Zpo-3-wyk-Slajd37: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Obiekt zastępczy== | ||
[[Image:zpo-3-wyk-Slajd37.PNG| | [[Image:zpo-3-wyk-Slajd37.PNG|Obiekt zastępczy]] | ||
Koncepcja obiektów zastępczych, zaproponowana przez Mackinnona i Freemana w 2000 roku, ma na celu rozwiązanie przedstawionych przed chwilą problemów związanych z testowaniem jednostkowym. Obiekt zastępczy posiada interfejs zastępowanego przez niego obiektu zależnego, a zatem może zastąpić go w interakcji z obiektem testowanym bez jakichkolwiek zmian w kodzie. Jest najprostszą możliwą implementacją obiektu zależnego, co oznacza, że nie wykonuje żadnych operacji, które nie są niezbędne z punktu widzenia obiektu testowanego. Zwykle jego działanie sprowadza się do zwracania poprzez jego metody określonych "na sztywno" wartości. Jest zatem prymitywnym naśladowcą obiektu zależnego. | |||
Aby zdefiniować jego zachowanie, musi być konfigurowalny – można w nim określić wartości zwracane przez jego metody. | |||
Wreszcie ostatnią własnością jest możliwość śledzenia interakcji z obiektem testowanym. Dzięki temu powstaje dodatkowa metoda weryfikacji zachowania obiektu testowanego: jeżeli wywoła on metody obiektu zastępczego niewłaściwą liczbę razy, nie zapyta o parametr, o który powinien zapytać – wówczas obiekt zastępczy może także zgłosić błąd, który będzie tożsamy z niespełnieniem asercji przypadku testowego. | |||
[[zpo-3-wyk-Slajd36 | << Poprzedni slajd]] | [[zpo-3-wyk-toc|Spis treści ]] | [[zpo-3-wyk-Slajd38 | Następny slajd >>]] | [[zpo-3-wyk-Slajd36 | << Poprzedni slajd]] | [[zpo-3-wyk-toc|Spis treści ]] | [[zpo-3-wyk-Slajd38 | Następny slajd >>]] |
Aktualna wersja na dzień 21:54, 4 lis 2006
Obiekt zastępczy
Koncepcja obiektów zastępczych, zaproponowana przez Mackinnona i Freemana w 2000 roku, ma na celu rozwiązanie przedstawionych przed chwilą problemów związanych z testowaniem jednostkowym. Obiekt zastępczy posiada interfejs zastępowanego przez niego obiektu zależnego, a zatem może zastąpić go w interakcji z obiektem testowanym bez jakichkolwiek zmian w kodzie. Jest najprostszą możliwą implementacją obiektu zależnego, co oznacza, że nie wykonuje żadnych operacji, które nie są niezbędne z punktu widzenia obiektu testowanego. Zwykle jego działanie sprowadza się do zwracania poprzez jego metody określonych "na sztywno" wartości. Jest zatem prymitywnym naśladowcą obiektu zależnego.
Aby zdefiniować jego zachowanie, musi być konfigurowalny – można w nim określić wartości zwracane przez jego metody.
Wreszcie ostatnią własnością jest możliwość śledzenia interakcji z obiektem testowanym. Dzięki temu powstaje dodatkowa metoda weryfikacji zachowania obiektu testowanego: jeżeli wywoła on metody obiektu zastępczego niewłaściwą liczbę razy, nie zapyta o parametr, o który powinien zapytać – wówczas obiekt zastępczy może także zgłosić błąd, który będzie tożsamy z niespełnieniem asercji przypadku testowego.