Zpo-4-lab: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 9: | Linia 9: | ||
Przygotowanie do ćwiczenia polega na zainstalowaniu [http://java.sun.com/javase/downloads/index.jsp JDK 5.0] oraz środowiska [http://www.eclipse.org/downloads Eclipse] w wersji 3.2 | Przygotowanie do ćwiczenia polega na zainstalowaniu [http://java.sun.com/javase/downloads/index.jsp JDK 5.0] oraz środowiska [http://www.eclipse.org/downloads Eclipse] w wersji 3.2 | ||
Biblioteka EasyMock jest dołączona do projektu zawierającego [media:zpo-05-lab.zip|szablon aplikacji]. Można także pobrać ją ze strony projektu [http://www.easymock.org EasyMock] | Biblioteka EasyMock jest dołączona do projektu zawierającego [media:zpo-05-lab.zip|szablon aplikacji]. Można także pobrać ją ze strony projektu [http://www.easymock.org EasyMock] | ||
Po uruchomieniu środowiska i wyborze przestrzeni roboczej należy zaimportować (menu File->Import->Existing projects into workspace) projekt [[media:zpo- | Po uruchomieniu środowiska i wyborze przestrzeni roboczej należy zaimportować (menu File->Import->Existing projects into workspace) projekt [[media:zpo-04-lab.zip|zpo-04-lab.zip]] z szablonem rozwiązania. | ||
==Zadanie 1== | ==Zadanie 1== |
Wersja z 11:28, 6 wrz 2006
Ćwiczenie 4. Obiekty zastępcze
Informacje wstępne
Ćwiczenie jest realizowany w języku Java w środowisku Eclipse 3.2. Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem. Celem ćwiczenia zastosowanie obiektów zastępczych (ang. mock objects) do testowania jednostkowego systemów obiektowych.
Instalacja
Przygotowanie do ćwiczenia polega na zainstalowaniu JDK 5.0 oraz środowiska Eclipse w wersji 3.2 Biblioteka EasyMock jest dołączona do projektu zawierającego [media:zpo-05-lab.zip|szablon aplikacji]. Można także pobrać ją ze strony projektu EasyMock Po uruchomieniu środowiska i wyborze przestrzeni roboczej należy zaimportować (menu File->Import->Existing projects into workspace) projekt zpo-04-lab.zip z szablonem rozwiązania.
Zadanie 1
Napisz testy jednostkowe wykorzystujące obiekty zastępcze (ang. mock objects) do testowania aplikacji-zegara.
Zegar jest systemem interpretującym drgania generatora, który odmierza czas w postaci odcinków jednosekundowych. Generator drgań jest niezbędny do uruchomienia zegara, jednak wykorzystanie go w środowisku testowym jest niemożliwe, ponieważ wykonanie niektórych przypadków testowych zajęłoby zbyt wiele czasu.
Dlatego należy zaimplementować obiekt zastępczy reprezentujący generator drgań, który zastąpi odliczanie sekund prostszym i konfigurowalnym mechanizmem. Obiekt zastępczy jest alternatywną (w stosunku do istniejącego generatora drgań) implementacją interfejsu GeneratorDrgan, którego metody posiadają najmniejszą możliwą funkcjonalność, a jednocześnie są konfigurowalne.
Zadanie 2
Drugim zadaniem jest zrealizowanie tego samego obiektu zastępczego za pomocą biblioteki EasyMock, która pozwala na dynamiczne (tj. bez konieczności ich ręcznej implementacji) utworzenie obiektów z wykorzystaniem mechanizmu Java Dynamic Proxy.
Dokumentacja systemu EasyMock znajduje się pod adresem EasyMock
Literatura
- T. Mackinnon, S. Freeman, P. Craig "Endo testing. Unit testing with mock objects". [PDF]
- "Mock objects i EasyMock w praktyce". [Java Developers Network]
- A. Chaffee, W. Pietri "Unit testing with mock objects". [IBM]
- EasyMock Homepage, http://www.easymock.org