Zpo-4-lab: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 1: | Linia 1: | ||
=Ćwiczenie 4. | =Ćwiczenie 4. Obiekty zastępcze= | ||
==Informacje wstępne== | ==Informacje wstępne== | ||
Ćwiczenie jest | Ć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. | Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem. | ||
Celem ćwiczenia | Celem ćwiczenia zastosowanie obiektów zastępczych (ang. mock objects) do testowania jednostkowego systemów obiektowych. | ||
==Instalacja== | ==Instalacja== | ||
Przygotowanie do ćwiczenia polega na zainstalowaniu | 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] | |||
Po uruchomieniu środowiska i wyborze przestrzeni roboczej należy zaimportować (menu File->Import->Existing projects into workspace) projekt [[media:zpo-05-lab.zip|zpo-05-lab.zip]] z szablonem rozwiązania. | |||
==Zadanie== | ==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 [http://www.easymock.org/EasyMock2_2_Documentation.html EasyMock] | |||
==Literatura== | ==Literatura== | ||
# | # T. Mackinnon, S. Freeman, P. Craig "Endo testing. Unit testing with mock objects". [[http://www.connextra.com/aboutUs/mockobjects.pdf PDF]] | ||
# | # "Mock objects i EasyMock w praktyce". [[http://jdn.pl/node/6 Java Developers Network]] | ||
# A. Chaffee, W. Pietri "Unit testing with mock objects". [[http://www-128.ibm.com/developerworks/library/j-mocktest.html IBM]] | |||
# EasyMock Homepage, [http://www.easymock.org http://www.easymock.org] |
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-05-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