<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AgileWorks Romania</title>
	<atom:link href="http://agileworks.ro/feed/" rel="self" type="application/rss+xml" />
	<link>http://agileworks.ro</link>
	<description>Comunitatea Romana de Agile, Lean,  Software Craftsmanship</description>
	<lastBuildDate>Sun, 19 May 2013 06:32:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Global Day of Code Retreat 2012</title>
		<link>http://agileworks.ro/global-day-of-code-retreat-2012/</link>
		<comments>http://agileworks.ro/global-day-of-code-retreat-2012/#comments</comments>
		<pubDate>Mon, 12 Nov 2012 11:12:57 +0000</pubDate>
		<dc:creator>alexboly</dc:creator>
				<category><![CDATA[Software Craftsmanship]]></category>
		<category><![CDATA[GDCR]]></category>
		<category><![CDATA[GDCR2012]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=649</guid>
		<description><![CDATA[Anul acesta sarbatorim pentru al doilea an consecutiv pasiunea pentru cod curat si frumos, cu ocazia Global Day of Code Retreat 2012, pe 8 Decembrie 2012. Comunitatea AgileWorks, fiind pionierul acestui eveniment in afara SUA, a facilitat organizarea catorva evenimente in toata Romania. Lista evenimentelor este urmatoarea: Bucuresti - code retreat facilitat de Alexandru Bolboaca [...]]]></description>
				<content:encoded><![CDATA[<p>Anul acesta sarbatorim pentru al doilea an consecutiv pasiunea pentru cod curat si frumos, cu ocazia <a title="GDCR2012" href="http://globalday.coderetreat.org/" target="_blank">Global Day of Code Retreat 2012</a>, pe 8 Decembrie 2012. Comunitatea AgileWorks, fiind pionierul acestui eveniment in afara SUA, a facilitat organizarea catorva evenimente in toata Romania.</p>

<p>Lista evenimentelor este urmatoarea:</p>

<ul>
    <li><a title="Bucharest GDCR 2012" href="http://www.meetup.com/The-Bucharest-Agile-Software-Meetup-Group/events/90187872/" target="_blank">Bucuresti</a> - code retreat facilitat de <a href="mailto: alexboly@gmail.com" target="_blank">Alexandru Bolboaca</a></li>
    <li><a title="Timisoara GDCR 2012" href="http://www.meetup.com/The-Timisoara-Agile-Software-Meetup-Group/events/89302592/" target="_blank">Timisoara</a> - code retreat facilitat de <a href="mailto: flavius.stef@gmail.com" target="_blank">Flavius Stef</a></li>
    <li><a title="Cluj Napoca GDCR 2012" href="http://www.meetup.com/The-Cluj-Napoca-Agile-Software-Meetup-Group/events/90495422/" target="_blank">Cluj Napoca</a>  - code retreat facilitat de <a href="mailto: adi_bolb123@yahoo.com" target="_blank">Adi Bolboaca</a>. Cu aceeasi ocazie, <a title="RABS GDCR 2012" href="http://www.rabs.ro/global-day-of-code-retreat-2012/95" target="_blank">RABS</a> organizeaza un alt code retreat in Cluj Napoca, ceea ce inseamna ca dezvoltatorii clujeni au de unde alege. Ne bucuram de diversitate, si lucram impreuna cu RABS pentru ca ambele evenimente sa fie la inaltime. Asadar, potentialii participanti sunt rugati sa aleaga unul dintre code retreat-uri, pentru a evita problemele de organizare.</li>
    <li>Sibiu - urmeaza sa fie anuntat.</li>
</ul>

<div>Daca doriti sa ajutati la organizarea oricarui eveniment, va rugam sa contactati facilitatorul. Pentru alte detalii despre GDCR 2012, Adi Bolboaca este coorganizator la nivel global al evenimentului si poate oferi mai multe detalii.</div>

<div></div>

<div>Va asteptam la GDCR 2012!</div>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/global-day-of-code-retreat-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AgileWorks Remote Open Space</title>
		<link>http://agileworks.ro/agileworks-remote-open-space/</link>
		<comments>http://agileworks.ro/agileworks-remote-open-space/#comments</comments>
		<pubDate>Thu, 01 Nov 2012 13:34:36 +0000</pubDate>
		<dc:creator>adrian.bolboaca</dc:creator>
				<category><![CDATA[Intalniri]]></category>
		<category><![CDATA[Open Space]]></category>
		<category><![CDATA[Organizare]]></category>
		<category><![CDATA[Software Craftsmanship]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=3718</guid>
		<description><![CDATA[History Last year, after the Agile Lean Europe (ALE) conference, Franck Depierre had the idea to start a Remote Open Space to connect the different communities of practice of Europe, in the spirit of the ALE Network. Franck called this concept xALEc, or The Extreme ALE Club. Inspired by his initiative we initiate the same [...]]]></description>
				<content:encoded><![CDATA[<p><strong>History</strong></p>

<p>Last year, after the Agile Lean Europe (ALE) conference, <a href="https://twitter.com/FranckDepierre">Franck Depierre</a> had the idea to start a Remote Open Space to connect the different communities of practice of Europe, in the spirit of the <a href="http://alenetwork.eu/">ALE Network</a>. Franck called this concept <a href="http://alenetwork.eu/blog/2012/02/24/xalec/">xALEc</a>, or The Extreme ALE Club.</p>

<p>Inspired by his initiative we initiate the same concept to unite the AgileWorks Romanian groups: <a href="http://www.meetup.com/The-Bucharest-Agile-Software-Meetup-Group/">Bucharest</a>, <a href="http://www.meetup.com/The-Timisoara-Agile-Software-Meetup-Group/">Timisoara</a>, <a href="http://www.meetup.com/The-Cluj-Napoca-Agile-Software-Meetup-Group/">Cluj-Napoca</a>, <a href="http://www.meetup.com/The-Iasi-Agile-Software-Meetup-Group/">Iași</a>,  <a href="http://www.meetup.com/The-Sibiu-Agile-Lean-Software-Meetup-Group/">Sibiu</a>, <a href="http://www.meetup.com/The-Targu-Mures-Agile-Software-Meetup-Group/">Targu-Mures</a>.</p>

<p>&nbsp;</p>

<p><strong>Why</strong></p>

<p>You have some questions and you would like to find answers.</p>

<p>You want to share your ideas to others.</p>

<p>You want to be exposed to new ideas</p>

<p>You want to learn new things.</p>

<p>You can e-meet experienced professionals.</p>

<p>&nbsp;</p>

<p><strong>How</strong></p>

<p><del>Each</del><strong><del> Tuesday</del> Every two weeks, on Tuesday, we meet at 19:30</strong> (<a href="http://www.timeanddate.com/worldclock/city.html?n=49">Romanian time</a>) on <a href="https://plus.google.com">Google Plus</a>. To attend you need to either open the <a href="https://docs.google.com/document/d/1_U4AGuojNYBTAjVBFd2D8zaJur8HUpW2OLKD8ZASBFc/edit">Google Document</a> and click on the Google Plus Hangout link or you can follow the <strong>Twitter tag #awros</strong> to see the link to the Google Plus Hangout.</p>

<p>Each attendee makes a short introduction.</p>

<p>We add to this <a href="https://docs.google.com/document/d/1_U4AGuojNYBTAjVBFd2D8zaJur8HUpW2OLKD8ZASBFc/edit">Google Document</a> the topics that we would like to talk about.</p>

<p>We vote the topics we want talk by dot voting on the Google Document.</p>

<p>We chat about the voted topics and we want to keep our ideas on the subject.</p>

<p>After 30 minutes we stop and we draw some conclusions.</p>

<p>We write the conclusions in the google document.</p>

<p>We use <a href="http://twitter.com/">Twitter</a> to radiate the ideas we have come up with by using the <strong>twitter tag #awros</strong></p>

<p>The first hangout will be on<strong> Tuesday 6th of November 2012</strong>.</p>

<p>&nbsp;</p>

<p><strong>In order to attend</strong></p>

<p>You need an internet connection, and a microphone attached to your computer.</p>

<p>You need a Google Plus account.</p>

<p>30 minutes of your time.</p>

<p>Good ideas.</p>

<p>&nbsp;</p>

<p><strong>More information</strong></p>

<p>About Open Space <a href="http://en.wikipedia.org/wiki/Open-space_technology">here</a>.</p>

<p>About AgileWorks Romania <a href="http://www.linkedin.com/groups/AgileWorks-Romania-1094357/about">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/agileworks-remote-open-space/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First code and beer in Bucharest</title>
		<link>http://agileworks.ro/first-code-and-beer-in-bucharest/</link>
		<comments>http://agileworks.ro/first-code-and-beer-in-bucharest/#comments</comments>
		<pubDate>Thu, 25 Oct 2012 15:54:49 +0000</pubDate>
		<dc:creator>adrian.bolboaca</dc:creator>
				<category><![CDATA[Bucuresti]]></category>
		<category><![CDATA[Software Craftsmanship]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=1937</guid>
		<description><![CDATA[What The code and beer idea is simple enough: we gather in the evening after work, in a pub, have a beer and write some code. It is a social coding event where you can share ideas with other developers. You can come and leave whenever you want. Why would you come and join us [...]]]></description>
				<content:encoded><![CDATA[<p><strong>What</strong></p>

<p>The code and beer idea is simple enough: we gather in the evening after work, in a pub, have a beer and write some code. It is a social coding event where you can share ideas with other developers. You can come and leave whenever you want.</p>

<p><strong>Why would you come and join us</strong></p>

<ul>
    <li>meet-up with other programers</li>
    <li>work on your own project</li>
    <li>help others on their projects</li>
    <li>find someone that might help you on a specific topic</li>
    <li>pair with someone and learn new things</li>
    <li>just hang around to talk with people</li>
</ul>

<p><strong>When</strong></p>

<p>We want to make the first code and beer in Bucharest on 30th of October at 19:00 hours. We will use the <a href="http://www.meetup.com/The-Bucharest-Agile-Software-Meetup-Group/">Bucharest Agile Meetup Group</a> for registration, <a href="http://www.meetup.com/The-Bucharest-Agile-Software-Meetup-Group/events/88527382/">here</a> is the event on meetup.</p>

<p>There is no predefined agenda. We just meet-up and work on whatever we feel like it. It will be over... when it will be over.</p>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/first-code-and-beer-in-bucharest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AgileWorks in Târgu-Mureș?</title>
		<link>http://agileworks.ro/agileworks-in-targu-mures/</link>
		<comments>http://agileworks.ro/agileworks-in-targu-mures/#comments</comments>
		<pubDate>Sun, 27 May 2012 09:38:13 +0000</pubDate>
		<dc:creator>alexboly</dc:creator>
				<category><![CDATA[Targu-Mures]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=681</guid>
		<description><![CDATA[Interesul pentru comunitatea AgileWorks este în creștere. De curând, câteva persoane din Târgu-Mureș și-au exprimat interesul de a porni o serie locală de întâlniri. Laszlo Barabas s-a oferit sa organizeze prima întâlnire, cu scopul de a descoperi persoane interesate de a participa și voluntari pentru organizare. Dacă ești din Târgu-Mureș și te interesează subiectele: Agile, [...]]]></description>
				<content:encoded><![CDATA[<p>Interesul pentru comunitatea AgileWorks este în creștere. De curând, câteva persoane din Târgu-Mureș și-au exprimat interesul de a porni o serie locală de întâlniri.</p>

<p>Laszlo Barabas s-a oferit sa organizeze prima întâlnire, cu scopul de a descoperi persoane interesate de a participa și voluntari pentru organizare. Dacă ești din Târgu-Mureș și te interesează subiectele: Agile, Lean, Software Craftsmanship (și nu numai), te rog să adaugi un comentariu la acest post. Dacă sunt destui oameni interesați, vom organiza cât mai curând prima întâlnire.</p>

<p><strong>Despre AgileWorks:
</strong>
Comunitatea AgileWorks a pornit in 2007 cu scopul de a aduna oamenii interesați de Agile, Lean, Software Craftsmanship și orice altceva ce ajută la dezvoltarea de software de calitate. De atunci, comunitatea a crescut la peste 1000 de membri și este auto-organizată la nivel local în București, Cluj, Timișoara și Iași. Fiecare grup are unul sau mai mulți organizatori locali, aleși pe bază de voluntariat sau dintre cei mai activi din comunitate.
Poți consulta istoricul întâlnirilor locale AgileWorks pe grupurile de meetup - vezi link-urile din sidebar dreapta.</p>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/agileworks-in-targu-mures/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Legacy code retreat Bucuresti</title>
		<link>http://agileworks.ro/legacy-code-retreat-bucuresti/</link>
		<comments>http://agileworks.ro/legacy-code-retreat-bucuresti/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 14:32:45 +0000</pubDate>
		<dc:creator>adrian.bolboaca</dc:creator>
				<category><![CDATA[Bucuresti]]></category>
		<category><![CDATA[Software Craftsmanship]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=677</guid>
		<description><![CDATA[Sambata 7 aprilie 2012 va avea loc un nou Legacy code retreat la Bucuresti, gazduit de TeamNet. Mai multe informatii: http://www.meetup.com/The-Bucharest-Agile-Software-Meetup-Group/events/55995012/ &#160;]]></description>
				<content:encoded><![CDATA[<p>Sambata 7 aprilie 2012 va avea loc un nou Legacy code retreat la Bucuresti, gazduit de TeamNet. Mai multe informatii: <a href="http://www.meetup.com/The-Bucharest-Agile-Software-Meetup-Group/events/55995012/">http://www.meetup.com/The-Bucharest-Agile-Software-Meetup-Group/events/55995012/</a></p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/legacy-code-retreat-bucuresti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Retreat Sibiu</title>
		<link>http://agileworks.ro/code-retreat-sibiu/</link>
		<comments>http://agileworks.ro/code-retreat-sibiu/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 07:06:23 +0000</pubDate>
		<dc:creator>alexboly</dc:creator>
				<category><![CDATA[Intalniri]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=670</guid>
		<description><![CDATA[Primul Code Retreat din Sibiu va avea loc pe 28 Ianuarie 2012 si va fi facilitat de Costin Morariu. Daca sunteti prin zona, merita. Detalii si inregistrare: http://coderetreat.org/events/code-retreat-romania-sibiu]]></description>
				<content:encoded><![CDATA[<p>Primul Code Retreat din Sibiu va avea loc pe 28 Ianuarie 2012 si va fi facilitat de Costin Morariu. Daca sunteti prin zona, merita.</p>

<p>Detalii si inregistrare: <a href="http://coderetreat.org/events/code-retreat-romania-sibiu">http://coderetreat.org/events/code-retreat-romania-sibiu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/code-retreat-sibiu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>20.01.2012 &#8211; Maria Diaconu&#8217;s Account of Agile Transformations</title>
		<link>http://agileworks.ro/20-01-2012-maria-diaconus-accounts-of-agile-transformations/</link>
		<comments>http://agileworks.ro/20-01-2012-maria-diaconus-accounts-of-agile-transformations/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 05:44:58 +0000</pubDate>
		<dc:creator>stefan.bargaoanu</dc:creator>
				<category><![CDATA[Iasi]]></category>
		<category><![CDATA[Intalniri]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=666</guid>
		<description><![CDATA[AgileWorks Iasi is proud to be the guest of Maria Diaconu, Lean/Agile Coach and the founder of AgileWorks Romania! In her first meeting with our local Agile community of practice, Maria will share with us some of her experiences with Agile transformations in various companies. We'll welcome Maria on Friday, 20.01.2012, 18:30. The location is [...]]]></description>
				<content:encoded><![CDATA[<p>AgileWorks Iasi is proud to be the guest of Maria Diaconu, Lean/Agile Coach and the founder of AgileWorks Romania!</p>

<p>In her first meeting with our local Agile community of practice, Maria will share with us some of her experiences with Agile transformations in various companies.</p>

<p>We'll welcome Maria on Friday, 20.01.2012, 18:30. The location is yet to be established, so suggestions will be highly appreciated!</p>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/20-01-2012-maria-diaconus-accounts-of-agile-transformations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Global Day of Code Retreat in Bucuresti, Timisoara si Cluj</title>
		<link>http://agileworks.ro/global-day-of-code-retreat-in-bucuresti-timisoara-si-cluj/</link>
		<comments>http://agileworks.ro/global-day-of-code-retreat-in-bucuresti-timisoara-si-cluj/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 18:10:50 +0000</pubDate>
		<dc:creator>alexboly</dc:creator>
				<category><![CDATA[Bucuresti]]></category>
		<category><![CDATA[Cluj Napoca]]></category>
		<category><![CDATA[Intalniri]]></category>
		<category><![CDATA[Software Craftsmanship]]></category>
		<category><![CDATA[Timisoara]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=654</guid>
		<description><![CDATA[România este parte din Ziua Mondiala a Code Retreat! Bucuresti, Timisoara si Cluj-Napoca vor gazdui aceste evenimente. Va invit sa va inscrieti la unul dintre ele cat mai sunt locuri. Inscrierile se fac folosind grupurile meetup corespunzatoare orasului (vezi sidebar dreapta). Mai multe detalii despre code retreat sunt disponibile aici. Evenimentele sunt sponsorizate de: Toate: [...]]]></description>
				<content:encoded><![CDATA[<p>România este parte din <a href="http://blog.coderetreat.com/global-day-of-coderetreat" title="GDCR" target="_blank" class="broken_link">Ziua Mondiala a Code Retreat</a>! Bucuresti, Timisoara si Cluj-Napoca vor gazdui aceste evenimente.</p>

<p>Va invit sa va inscrieti la unul dintre ele cat mai sunt locuri. Inscrierile se fac folosind grupurile meetup corespunzatoare orasului (vezi sidebar dreapta).</p>

<p>Mai multe detalii despre code retreat sunt disponibile <a href="http://agileworks.ro/organizare/code-retreat/" title="Code Retreat">aici</a>.</p>

<p><a href="http://agileworks.ro/wp-content/uploads/2011/11/Global-Day-of-Code-Retreat_v2.jpg"><img src="http://agileworks.ro/wp-content/uploads/2011/11/Global-Day-of-Code-Retreat_v2.jpg" alt="" title="Global Day of Code Retreat" width="540" height="764" class="alignnone size-full wp-image-656" /></a></p>

<p>Evenimentele sunt sponsorizate de:</p>

<ul>
<li>Toate: <a href="http://mozaicworks.com" target="_blank">Mosaic Works</a> (tricouri, promovare, organizare)</li>
<li>Bucuresti: <a href="http://bitdefender.ro" target="_blank">Bit Defender</a> (locatie, masa, after-party)</li>
<li>Timisoara: <a href="http://www.aciworldwide.com/" target="_blank">ACI Worldwide</a> (masa, after-party), <a href="http://www.it-incubator.biz/" target="_blank">UBIT</a> (locatie)</li>
<li>Cluj Napoca: <a href="http://www.threepillarglobal.com/" target="_blank">Three Pillar Global Inc</a> (locatie), <a href="http://www.aciworldwide.com/" target="_blank">ACI Worldwide</a> (masa, after-party)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/global-day-of-code-retreat-in-bucuresti-timisoara-si-cluj/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>25.11.2011 &#8211; Case study &#8211; Agile/Scrum implementation at FITS</title>
		<link>http://agileworks.ro/25-11-2011-case-study-agilescrum-implementation-at-fits/</link>
		<comments>http://agileworks.ro/25-11-2011-case-study-agilescrum-implementation-at-fits/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 06:20:16 +0000</pubDate>
		<dc:creator>stefan.bargaoanu</dc:creator>
				<category><![CDATA[Iasi]]></category>
		<category><![CDATA[Intalniri]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=651</guid>
		<description><![CDATA[One of the key objectives of our Agile community of practice is to share experiences and learn from one another. In this respect and according to the wishes expressed during the retrospective we had two meetups ago, we open a series of case studies with a description of how Agile/Scrum is implemented at FITS. Friday, [...]]]></description>
				<content:encoded><![CDATA[<p>One of the key objectives of our Agile community of practice is to share experiences and learn from one another. In this respect and according to the wishes expressed during the retrospective we had two meetups ago, we open a series of case studies with a description of how Agile/Scrum is implemented at FITS.</p>

<p>Friday, 25.11.2011, 18:30, FITS - Str. Sf. Lazar Nr. 27, Et. II 217</p>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/25-11-2011-case-study-agilescrum-implementation-at-fits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to avoid brittle tests when testing the service layer</title>
		<link>http://agileworks.ro/how-to-avoid-brittle-tests-when-testing-the-service-layer/</link>
		<comments>http://agileworks.ro/how-to-avoid-brittle-tests-when-testing-the-service-layer/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 16:43:13 +0000</pubDate>
		<dc:creator>eugen.paraschiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://agileworks.ro/?p=636</guid>
		<description><![CDATA[There are many ways to test the service layer of an application. The goal here is to show how to unit test this layer in isolation, by mocking out the interactions with the database entirely. This example will use Spring 3 for the dependency injection, JUnit, Hamcrest and Mockito for testing, but the technologies can [...]]]></description>
				<content:encoded><![CDATA[<p dir="ltr">There are many ways to test the <strong>service layer</strong> of an application. The goal here is to show how to unit test this layer in isolation, by mocking out the interactions with the database entirely.</p>

<p dir="ltr">This example will use <a title="Spring" href="http://www.springsource.org/about" target="_blank">Spring 3</a> for the dependency injection, JUnit, <a title="Hamcrest" href="http://code.google.com/p/hamcrest/" target="_blank">Hamcrest</a> and <a title="Mockito" href="http://code.google.com/p/mockito/" target="_blank">Mockito</a> for testing, but the technologies can vary.<img title="More..." src="http://www.baeldung.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>

<p><strong>The layers
</strong></p>

<p dir="ltr">The typical java web application will havea service layer, on top of a DAL/DAO layer which in turn will calls the persistence layer.<code></code></p>

<p dir="ltr"><strong>The Service Layer:</strong></p>

<p><code><script src="https://gist.github.com/1272066.js"></script><noscript><p>View the code on <a href="https://gist.github.com/1272066">Gist</a>.</p></noscript></code></p>

<p><strong>The DAL/DAO layer:</strong></p>

<p><code><script src="https://gist.github.com/1272135.js"></script><noscript><p>View the code on <a href="https://gist.github.com/1272135">Gist</a>.</p></noscript></code></p>

<p dir="ltr"><strong>Motivation and blurring the lines of the unit test
</strong></p>

<p>When unit testing a service, the standard <strong>unit</strong> is usually the service <strong>class</strong>, simple as that. The test will mock out the layer underneath - in this case the DAO/DAL layer and verify the interactions on it. Exact same thing for the DAO layer - mocking out the interactions with the database (<em>HibernateTemplate</em> in this example) and verifying the interactions with that.</p>

<p>This is a valid approach, but it leads to brittle tests - adding or removing a layer almost always means rewriting the tests entirely. This happens because the tests rely on the exact structure of the layers, and a change to that means a change to the tests.</p>

<p>To avoid this kind of inflexibility, the scope of the tests will grow from the single service class to all the layers. Now, when testing the service layer, it's not the layer below that will be mocked, but the final layer which is directly interacting with the database - in this case, the <em>HibernateTemplate</em>:</p>

<p><code><script src="https://gist.github.com/1272175.js"></script><noscript><p>View the code on <a href="https://gist.github.com/1272175">Gist</a>.</p></noscript></code></p>

<p>Now the test only focuses on a single responsibility - when creation is triggered, does the creation reach the database?</p>

<p>The last test uses Mockito verification syntax to check that the <em>save</em> method has been called on the hibernate template, capturing the argument in the process so that it can be checked as well. The <strong>responsibility</strong> of creating the entity is verified via this interaction test, without the need to check any state - the test trusts that the hibernate save logic is working as intended. Of course that needs to be tested as well, but that is another responsibility and another type of test.</p>

<p><strong>Conclusion</strong></p>

<p>This technique invariably leads to more focused tests, which makes them more resilient and flexible to change. The only reason the test should now fail is because the <strong>responsibility</strong> under test is broken.</p>

<p>Check out the <a title="How to avoid brittle tests when testing the service layer" href="http://www.baeldung.com/2011/10/02/testing-the-service-layer/" target="_blank">original article</a> on <a title="Baeldung blog" href="http://www.baeldung.com/" target="_blank">baeldung</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://agileworks.ro/how-to-avoid-brittle-tests-when-testing-the-service-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
