pridaj zákazku
zoznam uchádzačov
ako pridať zákazku?
pridaj článok
zoznam zákaziek V tejto časti na konkrétnom projekte v skratke opíšeme postup, ako jednoduchým spôsobom zahrnúť JUnit testovanie do projektu, aké sú odporúčania pri tvorbe testov a iné. Pripomíname, že prostredím pre vývoj je IDE Eclipse, ktoré obsahuje podporu pre JUnit testovanie.
Spôsobov zahrnutia JUnit testov do projektu je viacero, snažili sme sa zvoliť si ten čo najjednoduchší. Je potrebné aplikovať nasledovné kroky:
1. Použitie junit-4.5.jar:
A. stiahnutie junit-4.5.jar a umiestnenie do adresára /lib projektu v prostredí Eclipse
B. cez vlastnosti projektu v časti Java Build Path vyberieme „Add External JAR“ a nastavíme cestu k junit-4.5.jar
2. Odporúčanie: „Kde do projektu umiestniť testy“:
Odporúča sa vytvoriť pre testovacie triedy zvlášť balík (iný adresár) nazvaný test, do ktorého umiestnime všetky „podbalíky“ v takej štruktúre, ako je to v balíku src alebo source. Obrázok znázorňuje 2 hlavné balíky: src a test, pričom v adresári test je štruktúra balíkov začínajúca na test a zodpovedá štruktúre balíkov v adresári src (na obrázku balíky test.mejdahed a test.ulozisko). Ako už bolo spomenuté, platí, že pre každú triedu bude existovať 1 trieda testovacia (na obrázku triedy DataStorageTest.java a UloziskoDatTest.java).

Ukážka štruktúry projektu – umiestnenie testovacích tried
Význam takejto štruktúry:
Je možné taktiež pristupovať iným alternatívnym spôsobom k umiestneniu testovacích tried. Napríklad tak, že umiestnime testovacie triedy tam, kde je aj zdrojový kód aplikácie. Oproti predošlému prístupu budeme môcť testovať aj metódy s prístupovými právami typu: private. Výhody nášho použitého a aj odporúčaného prístupu sú tieto:
1. Tým, že oddelíme zdrojový kód od testovacieho kódu, sme nútení využívať na testovanie správania sa, respektíve rozhrania, ktoré trieda poskytuje, iba public metódy
2. Tým zároveň otestujeme, do akej miery máme správne navrhnutú architektúru (konštrukciu) aplikácie, keďže takýto spôsob testovania do určitej miery odzrkadľuje správanie sa klienta
3. Odporúčanie: voľba názvov tried a metód
Konštrukcia názvu triedy:
BindComposabilityMedjahedFilter – - - > BindingComposabilityFilterTest
Konštrukcia názvu metódy:
Názov testovacej metódy bude pozostávať týchto 2 častí:
1. názov správania
2. názov situácie alebo stavu, alebo prípadu (case!), na ktorom je správanie odtestované
public void filter() – - - > public void testFilter_standardInput()
4. Odporúčanie: vytvorenie tela metódy - Ukážka jednoduchého testu
Okrem samotnej testovacej metódy sa v tele testovacej triedy nachádzajú už spomínané triedy: setUp a tearDown. Ich význam v diplomovom projekte, a teda aj celkový význam týchto metód je uvedený pod obrázkom. Obrázok je ukážkou tela týchto 3 metód a je príkladom jednoduchého testu.

Ukážka jednoduchého testu
<!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-US; mso-fareast-language:EN-US;} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:2016951305; mso-list-type:hybrid; mso-list-template-ids:-270622478 1188335612 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
Význam setUp()
Ak chceme testovať povedzme viac metód jednej triedy a tieto metódy využívajú tie isté testovacie údaje, vzniká duplicitný kód. Riešenie spočíva v inštanciovaní všetkých fieldov (zo static do non-static) a presunutí tejto inicializácie z testovacích metód do metódy setUp. Prečo? Lebo po spustení testovania dochádza pri vykonaní jednej testovacej metódy zakaždým k vytvoreniu novej inštancie testovacej triedy a zároveň platí, že metóda setUp je spustená pred každým spustením testovacej metódy. Inicializácia teda prebehne v poriadku.
Význam tearDown()
Vykoná sa zakaždým po ukončení ktoréhokoľvek testu. Zväčša určená na nastavovanie upratanie (nastavenie hodnôt premenných na null a podobne).
5. Odporúčanie: Zjednodušenie tvorby testov pri podobnom správaní testovaných metód
Ak testované metódy a triedy majú rovnaké správanie (rovnaké vstupy a výstupy), pre urýchlenie tvorby testov a odstránenie duplicity je možné urobiť nasledovné:

<!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-US; mso-fareast-language:EN-US;} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->
Ukážka časti abstraktnej triedy

<!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-US; mso-fareast-language:EN-US;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->
Ukážka dcérskej triedy
Napíš priamu reakciu