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 markup

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

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.