Hlavní menu

Nástroje

WebKiv / OpenCmsTestovaniModulu

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

Updated 11 February 2010, 13:52 by PremekBrada

WebKiv.OpenCmsTestovaniModulu History

Hide minor edits - Show changes to output

11 February 2010, 13:52 by PremekBrada - přestěhováno na OpenCms namespace
Changed lines 1-84 from:
!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í Eclispe

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 FrameworkyProWebKiv
to:
Přestěhováno na OpenCMS.TestovaniModuluPresJUnit .
09 February 2010, 14:10 by MartinZibricky - odkazy na dalsi zdroje o testovani a springu
Changed lines 79-80 from:

to:
* 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

06 February 2010, 14:37 by MartinZibricky - opraven link
Changed lines 4-5 from:
* http://www.vogella.de/articles/JUnit/article.html - Návod na používání JUnit4 v Eclipse
to:
[[http://www.vogella.de/articles/%4A%55nit/article.html | návod na používání JUnit4 v Eclipse IDE]].
06 February 2010, 14:30 by MartinZibricky - link na tutorial - junit v eclipse
Added lines 3-5:
Pokud jste ještě nikdy nepracovali s JUnit frameworkem, může přijít vhod
* http://www.vogella.de/articles/JUnit/article.html - Návod na používání JUnit4 v Eclipse
04 February 2010, 10:03 by PremekBrada -
Added lines 25-26:
* 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ě.
30 June 2009, 14:01 by PremekBrada -
Changed lines 21-22 from:
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 poeditovat výstupní adresář pro testy. Doporučený název je například ''test-classes''.
to:
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''.
30 June 2009, 09:21 by JaroslavPavuk -
Changed lines 73-77 from:
* http://wiki.kiv.zcu.cz/SlovnikTerminologie/JemnyUvodDoTestoveni - Stručný úvod do testování webové aplikace ''JUnitem'' za pomoci ''Springu''.
to:
* http://wiki.kiv.zcu.cz/SlovnikTerminologie/JemnyUvodDoTestoveni - Stručný úvod do testování webové aplikace ''JUnitem'' za pomoci ''Springu''.


----
Zpět na FrameworkyProWebKiv
29 June 2009, 23:20 by Tomas Peterka -
Added lines 1-73:
!Testování modulu pomocí JUnit frameworku

!!!Konfigurace

Je třeba mít staženou knihovnu ''JUnit'' verze 4.4. a ''Spring'' ve verzi 2.5 a vyšší.

!!!!Nastavení Eclispe

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 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ů.

!!!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''.