Hlavní menu
Nástroje |
OpenCMS.TestovaniModuluPresJUnit HistoryHide minor edits - Show changes to output 23 February 2010, 17:15
by
- Changed lines 20-21 from:
Dále je třeba od sebe oddělit adresáře se zdrojovými kódy modulu a se zdrojovými kódy vlastních testů. Pro tento účel si vytvoříme nový ''source folder'' a pojmenujeme ho například ''test''. Do něj vytvoříme balíkovou strukturu obdobnou té z adresáře ''src'', jen balíky omezíme na testované balíky modulu. to:
Dále je třeba od sebe oddělit adresáře se zdrojovými kódy modulu a se zdrojovými kódy vlastních testů. Pro tento účel si vytvoříme nový ''source folder'' a pojmenujeme ho {-například-} ''test''. Do něj vytvoříme balíkovou strukturu obdobnou té z adresáře ''src'', jen balíky omezíme na testované balíky modulu. 11 February 2010, 13:51
by
- přestěhováno z WebKiv namespaceAdded lines 1-84:
Testování modulu pomocí JUnit frameworku. Pokud jste ještě nikdy nepracovali s JUnit frameworkem, může přijít vhod [[http://www.vogella.de/articles/%4A%55nit/article.html | návod na používání JUnit4 v Eclipse IDE]]. !! Konfigurace Je třeba mít staženou knihovnu ''JUnit'' verze 4.4. a ''Spring'' ve verzi 2.5 a vyšší. !!!!Nastavení Eclipse Pro zdarné testování modulu je třeba nastavit eclipse tak, aby co nejméně ovlivňoval kopírování souborů do ''[=OpenCms=]''. !!!!!Build path První je třeba nastavit ''build path'', respetive do ní přidat knihovny nad rámec již přidaných knihoven. Knihovny ''junit-4.4.jar'' a ''spring-test.jar'' se do build path přidají přes ''Properties(projektu) -> Java Build Path -> Libraries -> Add external jars''. !!!!!Source package Dále je třeba od sebe oddělit adresáře se zdrojovými kódy modulu a se zdrojovými kódy vlastních testů. Pro tento účel si vytvoříme nový ''source folder'' a pojmenujeme ho například ''test''. Do něj vytvoříme balíkovou strukturu obdobnou té z adresáře ''src'', jen balíky omezíme na testované balíky modulu. !!!!!Output adresář Z důvodu oddělení překladů zdrojových kódů a zdrojových kódů testů je třeba provést následující nastavení: ''Properties(projektu) -> Java Build Path -> Sources''. Zde je třeba zaškrnout ''Allow output folders for source folders'' a pak rozkliknout příslušný source folder a poeditovat výstupní adresář pro testy. Doporučený název je například ''test-classes''. Těmito manévry se dosáhlo toho efektu, že se budou do [=OpenCms=] kopírovat pouze přeložené třídy bez tříd testů. * Pokud budou třídy ze @@src@@ překládané do @@classes@@ a třídy z @@test@@ do @@test@@ pak je to OK, pokud by ale Eclipse překládat @@src@@ do @@src@@ je to špatně. !!!Context configuration Spring od verze 2.5 obsahuje podporu pro testování. Díky této podpoře je možné využít ''Dependency Injection'' při psaní. Proto je třeba vytvořit soubor ''xxx-context.xml'' v adresáři test, kde ''xxx'' je v ukázkovém modulu ''controller'', protože jde o soubor pro testování ''controlleru''. [@ <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource"> <property name="driverClassName" value="org.postgresql.Driver" /> <property name="url" value="jdbc:postgresql://localhost:5432/postgres" /> <property name="username" value="postgres" /> <property name="password" value="postgres" /> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="osobyPrehledController" class="cz.zcu.kiv.opencms.springmvcapp.controllers.OsobyPrehledController"> <property name="osobaManager" ref="osobaManager" /> </bean> <bean id="osobaManager" class="cz.zcu.kiv.opencms.springmvcapp.services.OsobaManagerImpl"> <property name="osobaDao" ref="osobaDao" /> </bean> <bean id="osobaDao" class="cz.zcu.kiv.db.dao.OsobaDaoImpl"></bean> </beans> @] Spring si vynucuje mít deklarovány beany ''dataSource'' a ''transactionManager'' a to i v případě, že jde o aplikaci bez propojení s DB serverem. Poslední dvě beany jsou v tomto souboru pro injektnutí do testovaných tříd pomocí Springového ''Dependency Injection''. !!Psaní testů Vlastní testování modulu je stejné jako testování kterékoli jiné webové aplikace. Více si můžete přečíst v uvedených odkazech. !!Spuštění testů Spuštění tesů se provádí pří z vývojového prostředí ''Eclipse'', kde nad třídou s testy, respektive nad ''Suite class'' zavoláme ''Run as -> JUnit Test''. Test(-y) se spustí pokud je v IDE nainstalováno rozšíření pro JUnit. Toto rozšíření graficky zobrazí výsledky testů a případně zobrazí kde a proč daný test selhal. !!Odkazy * http://static.springframework.org/spring/docs/2.5.x/reference/testing.html - Referenční příručka ''Springu'', kapitola o testování. * http://junit.org - Domovská stránka knihovny ''JUnit''. * http://wiki.kiv.zcu.cz/SlovnikTerminologie/JemnyUvodDoTestoveni - Stručný úvod do testování webové aplikace ''JUnitem'' za pomoci ''Springu''. * http://www.infoq.com/articles/testing-in-spring - Testování aplikace se Spring frameworkem * http://www.shoesobjects.com/blog/2004/11/21/1101083542880.html - Spring a Hibernate, testování dao vrstvy ---- Zpět na OpenCMS.HomePage |