Hlavní menu

Nástroje

OpenCMS / TestovaniModuluPresJUnit

View (print) - Edit page | Recent changes - Page history

Updated 23 February 2010, 17:15 by PremekBrada

OpenCMS.TestovaniModuluPresJUnit History

Hide minor edits - Show changes to output

23 February 2010, 17:15 by PremekBrada -
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 PremekBrada - přestěhováno z WebKiv namespace
Added 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