<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Jak na rychlé integrační testy ve Springu</title>
	<atom:link href="http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/</link>
	<description>Dává je jen zřídka, obvykle jim není moc rozumět a často vám ani k ničemu nejsou.</description>
	<lastBuildDate>Wed, 21 Jul 2010 16:31:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Pavel Jetenský</title>
		<link>http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/comment-page-1/#comment-2005</link>
		<dc:creator>Pavel Jetenský</dc:creator>
		<pubDate>Wed, 07 May 2008 12:24:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/#comment-2005</guid>
		<description>Zrovna teď se mi to bude moc hodit, zavádím testy do projektu, kde je potřeba připravit hodně provázaných dat a měl jsem trochu obavy, jak to udělat aby měl test při každým spuštění čistý data a aby netrval dlouho pro každou metodu.

Takže Honzo díky :)</description>
		<content:encoded><![CDATA[<p>Zrovna teď se mi to bude moc hodit, zavádím testy do projektu, kde je potřeba připravit hodně provázaných dat a měl jsem trochu obavy, jak to udělat aby měl test při každým spuštění čistý data a aby netrval dlouho pro každou metodu.</p>
<p>Takže Honzo díky <img src='http://blog.novoj.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Novoj</title>
		<link>http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/comment-page-1/#comment-413</link>
		<dc:creator>Novoj</dc:creator>
		<pubDate>Sun, 19 Aug 2007 13:47:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/#comment-413</guid>
		<description>Jasně - žádné řešení není stoprocentní. Když ladím test, zatím to pro mě problém nebyl, že jsem nevěděl co mám v tu chvíli v databázi - obvykle totiž jeden test nevygeneruje tolik nových dat, které v DB už nejsou před započetím testu.

Zrychlení a zjednodušení testů rozhodně stojí za tuhle malou nevýhodu.

Ad 2) v tomto případě to půjde těžko aplikovat - leda na integrační testy subsystému, schovaného za danou WS

Spíš jde to to, že čím dál víc přicházím na to, že pokud se chce efektivně testovat, tak to obvykle jde - jen na řadu věcí přicházím o dost později, než bych potřeboval nebo chtěl ;).</description>
		<content:encoded><![CDATA[<p>Jasně &#8211; žádné řešení není stoprocentní. Když ladím test, zatím to pro mě problém nebyl, že jsem nevěděl co mám v tu chvíli v databázi &#8211; obvykle totiž jeden test nevygeneruje tolik nových dat, které v DB už nejsou před započetím testu.</p>
<p>Zrychlení a zjednodušení testů rozhodně stojí za tuhle malou nevýhodu.</p>
<p>Ad 2) v tomto případě to půjde těžko aplikovat &#8211; leda na integrační testy subsystému, schovaného za danou WS</p>
<p>Spíš jde to to, že čím dál víc přicházím na to, že pokud se chce efektivně testovat, tak to obvykle jde &#8211; jen na řadu věcí přicházím o dost později, než bych potřeboval nebo chtěl <img src='http://blog.novoj.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kamil Ševeček</title>
		<link>http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/comment-page-1/#comment-411</link>
		<dc:creator>Kamil Ševeček</dc:creator>
		<pubDate>Sun, 19 Aug 2007 12:25:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/#comment-411</guid>
		<description>1) Problém je v tom, že když potom ladíš test, který běží celý v transakci, nemůžeš se v půlce testu (když je kód zastaven na breakpointu) podívat na data v databázi (jestli jsou v správně).

2) Naše projekty používají často web servicy (máme stromovou strukturu projektů, které se navzájem využívají pomoci SOAPu) a s těmi mi lokální DB transakce moc nepomůže.</description>
		<content:encoded><![CDATA[<p>1) Problém je v tom, že když potom ladíš test, který běží celý v transakci, nemůžeš se v půlce testu (když je kód zastaven na breakpointu) podívat na data v databázi (jestli jsou v správně).</p>
<p>2) Naše projekty používají často web servicy (máme stromovou strukturu projektů, které se navzájem využívají pomoci SOAPu) a s těmi mi lokální DB transakce moc nepomůže.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Novoj</title>
		<link>http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/comment-page-1/#comment-327</link>
		<dc:creator>Novoj</dc:creator>
		<pubDate>Tue, 07 Aug 2007 14:50:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/#comment-327</guid>
		<description>JJ, jasně - tohle je výkonnější varianta. Asi jsem radikální, nechtělo se mi riskovat, že ten programátor špatně uklidí a padne mi to třeba o pět testů dál. Někdy si říkám, že než riskovat takovéhle nepříjemné chyby, je možná lepší stisknout VELKÝ ČERVENÝ KNOFLÍK :).</description>
		<content:encoded><![CDATA[<p>JJ, jasně &#8211; tohle je výkonnější varianta. Asi jsem radikální, nechtělo se mi riskovat, že ten programátor špatně uklidí a padne mi to třeba o pět testů dál. Někdy si říkám, že než riskovat takovéhle nepříjemné chyby, je možná lepší stisknout VELKÝ ČERVENÝ KNOFLÍK <img src='http://blog.novoj.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman Dagi Pichlik</title>
		<link>http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/comment-page-1/#comment-326</link>
		<dc:creator>Roman Dagi Pichlik</dc:creator>
		<pubDate>Tue, 07 Aug 2007 14:10:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/#comment-326</guid>
		<description>Ja jsem to myslel tak, ze potomek si udela tu opravu sam. Napriklad meni pouze data jednoho radku, tak je zbytecne aby se musela znovytvaret cela tabulka pripadne cast databaze kvuli referencni integrite. Tahle kompemnzacni metoda by byla jenom volitelna.</description>
		<content:encoded><![CDATA[<p>Ja jsem to myslel tak, ze potomek si udela tu opravu sam. Napriklad meni pouze data jednoho radku, tak je zbytecne aby se musela znovytvaret cela tabulka pripadne cast databaze kvuli referencni integrite. Tahle kompemnzacni metoda by byla jenom volitelna.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Novoj</title>
		<link>http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/comment-page-1/#comment-324</link>
		<dc:creator>Novoj</dc:creator>
		<pubDate>Tue, 07 Aug 2007 09:44:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/#comment-324</guid>
		<description>No to je přesně to, co dělá AbstractDatabaseSpringTestCase (se základní implementací v AbstractProjectDatabaseTestCase), jehož kód jsem uvedl v článku. Test v takovém případě buď 

a) změní počty řádků v tabulkách - předek to detekuje a refreshne data v DB 
b) zavolá metodu setDatabaseDirty a předek v tearDown zareaguje stejně

Nicméně řekl bych, že jakmile máš jeden jediný test, který neběží v transakci a modifikuje natvrdo data v databázi, zavírá si tím člověk vrátka ke konkurentnímu běhu více testů najednou - jistota je už ta tam.</description>
		<content:encoded><![CDATA[<p>No to je přesně to, co dělá AbstractDatabaseSpringTestCase (se základní implementací v AbstractProjectDatabaseTestCase), jehož kód jsem uvedl v článku. Test v takovém případě buď </p>
<p>a) změní počty řádků v tabulkách &#8211; předek to detekuje a refreshne data v DB<br />
b) zavolá metodu setDatabaseDirty a předek v tearDown zareaguje stejně</p>
<p>Nicméně řekl bych, že jakmile máš jeden jediný test, který neběží v transakci a modifikuje natvrdo data v databázi, zavírá si tím člověk vrátka ke konkurentnímu běhu více testů najednou &#8211; jistota je už ta tam.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman Dagi Pichlik</title>
		<link>http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/comment-page-1/#comment-322</link>
		<dc:creator>Roman Dagi Pichlik</dc:creator>
		<pubDate>Tue, 07 Aug 2007 06:54:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/08/04/jak-na-rychle-integracni-testy-ve-springu/#comment-322</guid>
		<description>Pristup s rollbacknutim transakce rozjete v testu ma jeste jednu vyhodu a to, ze je mozne diky defaultni izolaci transakce bezet vice konkurentnich testu nad jednou databazi a to aniz by se testy ovlivnily. Pokud test potrebuje udelat neco, co zmeni trvale stav databaze a tudiz by doslo k nekonzistenci dat, tak by nebylo spatne poskytnout v tom predkovi kompenzacni metodu, ktera by to vratila do puvodniho stavu. Predek by ji jednak volal a jednak sam implementoval jako prazdnou, potomek by mohl v pripade potreby dodat patricne chovani.</description>
		<content:encoded><![CDATA[<p>Pristup s rollbacknutim transakce rozjete v testu ma jeste jednu vyhodu a to, ze je mozne diky defaultni izolaci transakce bezet vice konkurentnich testu nad jednou databazi a to aniz by se testy ovlivnily. Pokud test potrebuje udelat neco, co zmeni trvale stav databaze a tudiz by doslo k nekonzistenci dat, tak by nebylo spatne poskytnout v tom predkovi kompenzacni metodu, ktera by to vratila do puvodniho stavu. Predek by ji jednak volal a jednak sam implementoval jako prazdnou, potomek by mohl v pripade potreby dodat patricne chovani.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
