<?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>Legolas in Minas Tirith &#187; testedby</title>
	<atom:link href="http://www.javalinux.it/wordpress/categories/testedby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.javalinux.it/wordpress</link>
	<description>Alessio &#38; Stefano ideas</description>
	<lastBuildDate>Tue, 20 Apr 2010 09:59:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>update on &#8220;a new approach to unit tests&#8221;</title>
		<link>http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/</link>
		<comments>http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 20:45:13 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[testedby]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=184</guid>
		<description><![CDATA[function fbs_click() { u=location.href; t=document.title; window.open("http://www.facebook.com/sharer.php?u="+encodeURIComponent(u)+"&#038;t="+encodeURIComponent(t),"sharer","toolbar=0,status=0,width=626,height=436"); return false; } html .fb_share_button {display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; height:15px; border:1px solid #d8dfea; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981) no-repeat top right;} html .fb_share_button:hover {color:#fff; border-color:#295582; background:#3b5998 url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981) no-repeat top right; text-decoration:none;} Share Well, my last posts had a lot of visit, and some feedbacks too. Some of them have been [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><div style="float: right; width: 70px; margin: 0 0 0 10px;">
<script type="text/javascript">
function fbs_click() {
u=location.href;
t=document.title;
window.open("http://www.facebook.com/sharer.php?u="+encodeURIComponent(u)+"&t="+encodeURIComponent(t),"sharer","toolbar=0,status=0,width=626,height=436");
return false;
}
</script>
<style type="text/css">
html .fb_share_button {display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; height:15px; border:1px solid #d8dfea; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981) no-repeat top right;}
html .fb_share_button:hover {color:#fff; border-color:#295582; background:#3b5998 url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981) no-repeat top right; text-decoration:none;}
</style>
<a href="http://www.facebook.com/share.php?u=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/" class="fb_share_button" onclick="return fbs_click()" target="_blank" style="text-decoration:none;">Share</a></div><div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/";
		var dzone_title = "update on &#8220;a new approach to unit tests&#8221;";
		var dzone_style = "1";
		var dzone_blurb = "																				Well, my last posts had a lot of visit, and some feedbacks too. Some of them have been attached directly to the post, some comes into The Server Side post. If you haven&#8217;t already done read both set of comments, there are some...";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;">
		<script type="text/javascript">
		<!--
		digg_url = "http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/";
		digg_bgcolor = "#FFFFFF";
		digg_skin = "";
		digg_window = "";
		digg_title = "update on &#8220;a new approach to unit tests&#8221;";
		digg_media = "news";
		digg_topic = "";
		digg_bodytext = "";
		//-->
		</script>
		<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script></div><!--S-ButtonZ 1.1.5 End--><div class="tweetmeme_button" style="float: right; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.javalinux.it%2Fwordpress%2F2008%2F10%2F22%2Fupdate-on-a-new-approach-to-unit-tests%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.javalinux.it%2Fwordpress%2F2008%2F10%2F22%2Fupdate-on-a-new-approach-to-unit-tests%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Well, my last posts had a lot of visit, and some feedbacks too. Some of them have been attached directly to <a href="http://www.javalinux.it/wordpress/?p=116" target="_blank">the post</a>, some comes into <a href="http://www.theserverside.com/news/thread.tss?thread_id=51292" target="_blank">The Server Side post</a>. If you haven&#8217;t already done read both set of comments, there are some good point to start thought and discussion.<br />
As you can read someone expressed some concerns about the idea (mainly about coupling and cluttering of code). I&#8217;d like we have opened a discussion and I&#8217;d like to continue trying to provide tools reducing pain worrying someone if it&#8217;s possible.<br />
I haven&#8217;t gotten only concerns, but compliments too and much more important some request to contribute, and accepted some. Please welcome with me our three new contributors (have a look to <a href="http://code.google.com/p/testedby/" target="_self">google code page</a> for more details).<br />
Well, comments on blog doesn&#8217;t scale very well, so I have written this post mainly to announce we have opened a dedicated groups on google to continue our discussion and brain storming about this idea. If you would like to contribute with idea, concerns, discussion or much better some code please join us:</p>
<table style="background-color: #fff; padding: 5px;" border="0" cellspacing="0">
<tbody>
<tr>
<td><img src="http://groups.google.com/groups/img/3nb/groups_bar.gif" alt="" width="132" height="26" /></td>
</tr>
<tr>
<td style="padding-left: 5px"><strong>Subscribe to testedby-dev</strong></td>
</tr>
<form action="http://groups.google.com/group/testedby-dev/boxsubscribe">
<tr>
<td style="padding-left: 5px;">Email:<br />
<input name="email" type="text" />
<input name="sub" type="submit" value="Subscribe" /></td>
</tr>
</form>
<tr>
<td align="right"><a href="http://groups.google.com/group/testedby-dev">Visit this group</a></td>
</tr>
</tbody>
</table>
<p>I hope some (or ideally all) the nice brains have commented here, on TSS, or email me would join us and provide their point of view contributing to provide to the community the opportunity to have a different approach to tests. Maybe it will not be perfect or better than current one, but choice between multiple alternatives means freedom.<br />
Thanks for the interest.</p>
<div style="clear:both;">&nbsp;</div>

<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22&amp;desc=Well%2C%20my%20last%20posts%20had%20a%20lot%20of%20visit%2C%20and%20some%20feedbacks%20too.%20Some%20of%20them%20have%20been%20attached%20directly%20to%20the%20post%2C%20some%20comes%20into%20The%20Server%20Side%20post.%20If%20you%20haven%27t%20already%20done%20read%20both%20set%20of%20comments%2C%20there%20are%20some%20good%20point%20to%20start%20thought%20and%20discussion.%0D%0AAs%20you%20can%20read%20someone%20expre" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.dzone.com/links/add.html?url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22&amp;description=Well%2C%20my%20last%20posts%20had%20a%20lot%20of%20visit%2C%20and%20some%20feedbacks%20too.%20Some%20of%20them%20have%20been%20attached%20directly%20to%20the%20post%2C%20some%20comes%20into%20The%20Server%20Side%20post.%20If%20you%20haven%27t%20already%20done%20read%20both%20set%20of%20comments%2C%20there%20are%20some%20good%20point%20to%20start%20thought%20and%20discussion.%0D%0AAs%20you%20can%20read%20someone%20expre" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;t=update+on+%22a+new+approach+to+unit+tests%22" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=update+on+%22a+new+approach+to+unit+tests%22&amp;link=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22&amp;srcUrl=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;srcTitle=update+on+%22a+new+approach+to+unit+tests%22&amp;snippet=Well%2C%20my%20last%20posts%20had%20a%20lot%20of%20visit%2C%20and%20some%20feedbacks%20too.%20Some%20of%20them%20have%20been%20attached%20directly%20to%20the%20post%2C%20some%20comes%20into%20The%20Server%20Side%20post.%20If%20you%20haven%27t%20already%20done%20read%20both%20set%20of%20comments%2C%20there%20are%20some%20good%20point%20to%20start%20thought%20and%20discussion.%0D%0AAs%20you%20can%20read%20someone%20expre" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22&amp;summary=Well%2C%20my%20last%20posts%20had%20a%20lot%20of%20visit%2C%20and%20some%20feedbacks%20too.%20Some%20of%20them%20have%20been%20attached%20directly%20to%20the%20post%2C%20some%20comes%20into%20The%20Server%20Side%20post.%20If%20you%20haven%27t%20already%20done%20read%20both%20set%20of%20comments%2C%20there%20are%20some%20good%20point%20to%20start%20thought%20and%20discussion.%0D%0AAs%20you%20can%20read%20someone%20expre&amp;source=Legolas in Minas Tirith" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;bm_description=update+on+%22a+new+approach+to+unit+tests%22&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/&amp;title=update+on+%22a+new+approach+to+unit+tests%22" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=RT+%40maeste+update+on+%22a+new+approach+to+unit+tests%22+-+http://cli.gs/MWaD7&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2008/10/22/update-on-a-new-approach-to-unit-tests/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A new approach to unit tests</title>
		<link>http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/</link>
		<comments>http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 19:54:21 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[testedby]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=116</guid>
		<description><![CDATA[function fbs_click() { u=location.href; t=document.title; window.open("http://www.facebook.com/sharer.php?u="+encodeURIComponent(u)+"&#038;t="+encodeURIComponent(t),"sharer","toolbar=0,status=0,width=626,height=436"); return false; } html .fb_share_button {display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; height:15px; border:1px solid #d8dfea; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981) no-repeat top right;} html .fb_share_button:hover {color:#fff; border-color:#295582; background:#3b5998 url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981) no-repeat top right; text-decoration:none;} Share I&#8217;ve written a little update of this post. If you are interested joining discussion started around this blog [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><div style="float: right; width: 70px; margin: 0 0 0 10px;">
<script type="text/javascript">
function fbs_click() {
u=location.href;
t=document.title;
window.open("http://www.facebook.com/sharer.php?u="+encodeURIComponent(u)+"&t="+encodeURIComponent(t),"sharer","toolbar=0,status=0,width=626,height=436");
return false;
}
</script>
<style type="text/css">
html .fb_share_button {display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; height:15px; border:1px solid #d8dfea; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981) no-repeat top right;}
html .fb_share_button:hover {color:#fff; border-color:#295582; background:#3b5998 url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981) no-repeat top right; text-decoration:none;}
</style>
<a href="http://www.facebook.com/share.php?u=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/" class="fb_share_button" onclick="return fbs_click()" target="_blank" style="text-decoration:none;">Share</a></div><div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/";
		var dzone_title = "A new approach to unit tests";
		var dzone_style = "1";
		var dzone_blurb = "																				I&#8217;ve written a little update of this post. If you are interested joining discussion started around this blog entry please take a look thereWhat does &#8220;a new approach to unit tests&#8221; mean? Isn&#8217;t JUnit or TestNG...";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;">
		<script type="text/javascript">
		<!--
		digg_url = "http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/";
		digg_bgcolor = "#FFFFFF";
		digg_skin = "";
		digg_window = "";
		digg_title = "A new approach to unit tests";
		digg_media = "news";
		digg_topic = "";
		digg_bodytext = "";
		//-->
		</script>
		<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script></div><!--S-ButtonZ 1.1.5 End--><div class="tweetmeme_button" style="float: right; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.javalinux.it%2Fwordpress%2F2008%2F10%2F20%2Fa-new-approach-to-unit-tests%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.javalinux.it%2Fwordpress%2F2008%2F10%2F20%2Fa-new-approach-to-unit-tests%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<table border="2">
<tbody>
<tr>
<td>I&#8217;ve written a <a href="http://www.javalinux.it/wordpress/?p=184">little update of this post</a>. If you are interested joining discussion started around this blog entry please take a look <a href="http://www.javalinux.it/wordpress/?p=184">there</a></td>
</tr>
</tbody>
</table>
<p>What does &#8220;a new approach to unit tests&#8221; mean? Isn&#8217;t <a href="http://www.junit.org/" target="_blank">JUnit</a> or <a href="http://testng.org/doc/" target="_blank">TestNG</a> enough and fine? JUnit (from here on I&#8217;ll nominate it only for briefness, but TestNG is the same for my discussion) puts <em>test classes</em> on focus and starts from them all tests. This means in fact that classes under test are considered only in <em>test classes</em> code, the only way a programmer can keep an eye on <em>classes under test</em> is using some kind of naming convention.</p>
<p>With older versions of JUnit you were forced to design your test classes extending a framework&#8217;s class and calling methods starting with &#8220;test&#8221;. So the convention has been to name <em>test classes</em> and <em>test methods</em> with words which could &#8220;connect&#8221; them with <em>class and method under test</em>. I think you would agree with me TestNG and Junit 4 give us a lot of freedom removing these requirements. Anyway the problem of logical connecting class and methods under test to our tests still remain and most <em>test classes</em> still respect that old convention.</p>
<p>But there are a lot of better ways to name classes and methods! Let me introduce you to Behaviour Driven Development (BDD). Please note BDD is not going to be the main focus of this article, anyway it makes a perfect wedding with my idea. So, let&#8217;s go into BDD in as fewer words as possible.</p>
<h1>BDD is not only a new way to write tests but also a new form of design by contract</h1>
<p>Let me start my introduction quoting the <a href="http://behaviour-driven.org/GettingTheWordsRight" target="_blank">behaviour-driven.org</a>:</p>
<blockquote><p><a href="http://behaviour-driven.org/BehaviourDrivenDevelopment">BehaviourDrivenDevelopment</a> grew out of a thought experiment based on <a href="http://behaviour-driven.org/NeuroLinguisticProgramming">NeuroLinguisticProgramming</a> techniques. The idea is that the words you use influence the way you think about something</p></blockquote>
<p>The whole idea is to ask programmers to concentrate on words used to describe a test class or method, because selected words will influence their point of view on the problem. In practice test we will write with a BDD approach will be much more concentrate on the behaviour of class/method under test then on the method itself. Of course this will change the way we test our code a lot, i.e. we will test a method multiple time to verify each behaviour is valid for it.</p>
<p>OK, what if I don&#8217;t believe on Neuro Linguistic Programming? Well, from a pure developer point of view, we are defining with our behaviour tests contracts of the class and methods. And moreover the tests results will be absolutely clear (i.e. &#8220;shouldAcceptNullValue fails&#8221; is a very clear statement also without complex reporting). Let me just provide a simple example to get you an idea:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">@Test<span style="color: #009900;">&#40;</span> expected <span style="color: #339933;">=</span> <span style="color: #003399;">IllegalArgumentException</span>.<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> shouldNotPermitMethodNull<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#91;</span>..<span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span>
    @Test<span style="color: #009900;">&#40;</span> expected <span style="color: #339933;">=</span> <span style="color: #003399;">IllegalArgumentException</span>.<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> shouldNotPermitEndPointNull<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
    @Test
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> shouldInitWebParams<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
    @Test
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> getHoldersResultShouldReturnHolderForRightParameters<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
    @Test
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> getHoldersResultShouldIgnoreUnknowntParameters<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
    @Test
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> getHoldersResultShouldIgnoreINParameters<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
    @Test
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> shouldRuninvokeForOneWayMethod<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
    @Test
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> shouldRuninvokeForMethods<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
    @Test
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> shouldRuninvokeForMethodsApplyingMapping<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Do you need a brief introduction about how BDD can be successfully applied to Java (original idea comes from Ruby&#8217;s RSpec)? Have a look at this <a href="http://jbossdna.blogspot.com/2008/06/testing-behaviors.html">excellent post.</a></p>
<h1>So is BDD enough?</h1>
<p>IMHO the answer is no. BDD is great and you should try it, but if you try to put it really in practice you will soon completely loose relations between classes under test and test classes. In BDD not only method names loose testXXX convention, but also test class names may loose their conventional name. Moreover you can have more than one test method insisting on the same method and/or class. For example the previous example isn&#8217;t perfect, maybe a specific test class to test <em>getHolder</em> method behaviour would be finer.</p>
<h1>Do you need help? Here is my new project TestedBy</h1>
<p>What about an annotation to mark classes and methods under test with a reference to test classes and methods? Not bad, isn&#8217;t it?</p>
<p>My thoughts started more or less from here, but there is much more than an annotation. I&#8217;ve loved so much this idea that I decided to start a new open source project providing testing tools that put <em>class under test</em> at the centre.<br />
Continue this read and I&#8217;ll demonstrate you how this annotation and related tools may totally change your approach to tests.</p>
<p>In a nutshell <a href="http://code.google.com/p/testedby/" target="_blank">TestedBy</a> aims at changing the point of view regarding test classes and classes under test. What we would obtain is to put classes under test (the most important classes of projects) at the centre and link test classes and methods from them. A code snippet may help much more than any explanations:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TestedBySample <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * @param args
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        TestedBySample sample <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TestedBySample<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span>sample.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @TestedBy<span style="color: #009900;">&#40;</span> testClass <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;it.javalinux.testedby.TestedBySampleTest&quot;</span>, testMethod <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;addShouldWork&quot;</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> add<span style="color: #009900;">&#40;</span> <span style="color: #000066; font-weight: bold;">int</span> i,
                    <span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> i <span style="color: #339933;">+</span> j<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    @TestedByList<span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#123;</span>@TestedBy<span style="color: #009900;">&#40;</span> testClass <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;it.javalinux.testedby.TestedBySampleTest&quot;</span>, testMethod <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;addShouldWork&quot;</span> <span style="color: #009900;">&#41;</span>,
        @TestedBy<span style="color: #009900;">&#40;</span> testClass <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;it.javalinux.testedby.TestedBySampleTest&quot;</span>, testMethod <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;addShouldWork2&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> add2<span style="color: #009900;">&#40;</span> <span style="color: #000066; font-weight: bold;">int</span> i,
                     <span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> i <span style="color: #339933;">+</span> j<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Oki, it&#8217;s nice, but can it really change your approach to unit tests? I think so.<br />
How? At least in two different manner.</p>
<h1>1. Design by interface and contracts</h1>
<p>A famous adagio in software design says &#8220;Design by interface&#8221;. And it&#8217;s a sweet song for my ears. But of course you should &#8220;Test interface&#8221; too.</p>
<p>More formally &#8220;Design by interface&#8221; means defining interfaces of your API and then asking all implementors (maybe and a lot of times are different people or even companies) to implement these interfaces. Anyway all you can enforce is what a strongly typed language as Java can ensure: an interface implementation must respect its interface signature both in types and parameters. What you cannot enforce are behaviours. And of course it&#8217;s a big limitation in API design as this could drive to implementation with totally unpredictable behaviours.</p>
<p>Here comes to my mind <a href="http://en.wikipedia.org/wiki/Eiffel_programming_language#Design_by_Contract" target="_blank">Eiffell language</a> and its <a href="http://en.wikipedia.org/wiki/Design_by_contract" target="_blank">design by contract (DbC)</a> approach where contracts guide redefinitions of features in inheritance. There are a lot of tools providing DbC in Java, but my thought is that we already have a consolidated way to test contracts on methods and also finer behavior even of smaller piece of code: Unit tests.</p>
<p>With TestedBy, tests declared on an interface (or a superclass) can be run upon all implementers to verify they&#8217;re respecting the behaviour and contract defined in the super type. <strong>IOW the API designer not only provides the interfaces, but also a set of test classes verifying expected behaviour</strong>. Then every implementer would supply its own implementation and run the tests provided by the API designer against its concrete classes to verify they are respecting not only type safety but also beahviour/contract safety for which the API was designed. TesteBy here invokes a test defined for an interface passing to test class a concrete instance of class implementing the interface under test.</p>
<p>Here is an example on how this is achieved with TestedBy: we have added @TestedBy annotation on APIInterface and then provided a @BeforeTestedBy annotation to set the interface instance on which tests run. TestedBy will run <em>shouldAddTwoAndThree </em>both for APIImplOne and APIImplTwo, succeding on the first one and failing on the second</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> APIInterface <span style="color: #009900;">&#123;</span>
   @TestedBy<span style="color: #009900;">&#40;</span> testClass <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;it.javalinux.testedby.APITest&quot;</span>, testMethod <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;shouldAddTwoAndThree&quot;</span> <span style="color: #009900;">&#41;</span>
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> add<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> a, <span style="color: #000066; font-weight: bold;">int</span> b<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> APIImplOne <span style="color: #009900;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> add<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> a, <span style="color: #000066; font-weight: bold;">int</span> b<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">return</span> a <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> APIImplTwo <span style="color: #009900;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> add<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> a, <span style="color: #000066; font-weight: bold;">int</span> b<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">return</span> a <span style="color: #339933;">-</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> APITest <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> APIInterface instance<span style="color: #339933;">;</span>
&nbsp;
  @BeforeTestedBy
  <span style="color: #000000; font-weight: bold;">public</span> beforeTestedBy<span style="color: #009900;">&#40;</span>APIInterface instance<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">instance</span> <span style="color: #339933;">=</span> instance<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> 	  
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> shouldAddTwoAndThree<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	assertThat<span style="color: #009900;">&#40;</span>instance.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span>, is<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Of course I have kept the example simple, but TestedBy has some more annotations, for instance factory of classes under test can be specified when simple reflective invocation of no argument constructor isn&#8217;t enough.</p>
<h1>2. Run test on current working class</h1>
<p>You write a test to verify your code correctness. Moreover you are using unit test to ensure your changes isn&#8217;t breaking working code and mainly works of other people. How are you doing this? You make your changes and then you run all your tests against code you are modifying. Then at the end you run all tests to be sure you haven&#8217;t broke anything else.</p>
<p>What about having your IDE do the first step for you then? As it compile your modified classes it could (and IMHO it should) run tests against these classes. TestedBy makes this possible since you or your IDE could ever run tests against changed (aka compiled) classes. Here an eclipse plugin can do the magic of running tests insisting on you  modified classes and verifing you aren&#8217;t breaking your test suite, not only your compilation, during code development. And this should not be too heavy, since the plugin could use TestedBy&#8217;s annotations to run only few tests insisting on your modified classes (or even methods).</p>
<p>Moreover running tests on a particular class under test you&#8217;ll get a clear report saying something like</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #0000ff;">&quot;ClassUnderTest.methodUnderTest shouldThrowExceptionWithNullParameter doen't pass&quot;</span></pre></div></div>

<p>or even better</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #0000ff;">&quot;Failure: methodUnderTest in ClassUnderTest doesn't throw exception with null parameter, but it should!&quot;</span></pre></div></div>

<p>Moreover you can of course totally break (if you like or need) conventions on class/method names and find, run and navigate your tests staring from your project classes.</p>
<p>Of course massive launches running all tests insisting on all classes will still be possible <strong>and your tests will be also runnable by JUnit since a TestedBy test is a JunitTest</strong>.</p>
<h1>Some features</h1>
<p>Well, let me detail some features I have in mind for TestedBy</p>
<ol>
<li>The first one maybe the most trivial, but one of the most useful: within your ide you can navigate sources starting from the class/method under test. This feature comes out of the box with Eclipse 4.4, since it makes full qualified class names navigable also if they are inside a string. Of course it&#8217;s just a starting point, and a specific Eclipse plugin may be developed to navigate the code, construct the tree of test classes from a class under test, execute tests insisting on the open/changed class (see point 3 too) and so on. I&#8217;m not an Eclipse guru, so any contributions on this area are more than welcome.</li>
<li>You will find this annotation in you javadoc. Think how much advantage you can get if you are using a BDD approach, defining test methods like shouldNotAcceptNull() or shouldThrowsExceptionIfEmpty and so on. With a BDD approach you can in fact define and verify contracts and with TestedBy annotation in JavaDoc document it to your API users</li>
<li>You can run test starting from class under test and not test class. I have already said a lot about this in the previous chapter.</li>
<li>
<div>A design by interface and contracts. I have already introduced this idea in a dedicated paragraph.</div>
</li>
<li>Test class generation. A tool (ant, maven, or eclipse too) can use our TestedBy annotation to generate test classes. Read also point 6.</li>
<li>Ant and/or maven task/plugin to run tests starting from class under test. This tools will manage also round tripping <strong>(it&#8217;s important to ensure test classes and annotations don&#8217;t go quickly out of sync)</strong>:
<ul>
<li>Reverse engeneering: starting from existing tests will add TestedBy annotations to class under test</li>
<li>Running tests from TestedBy annotations will verify they run all tests and that no annotation point to not existing test.</li>
<li>Generate (empty) test classes and methods starting from annotations.</li>
</ul>
</li>
</ol>
<p>Ok, that is not all, but I think it can give you the whole idea. I&#8217;m working on some other ideas behind this one, but I need to define them a little better before presenting them to the community.</p>
<h1>Conclusions</h1>
<p>So can this approach interest you? <strong>Let me known what you think about and share with your friends this post&#8230;more feedback I get, better refinement I can do.</strong></p>
<p>Now the question is&#8230;which is the status of the project?<br />
Well have a look to <a href="http://www.javalinuxlabs.org/drupal/?q=node/21" target="_blank">project homepage on javalinuxlabs</a>. On <a href="http://code.google.com/p/testedby/" target="_blank">googlecode</a> you&#8217;ll find also some classes under svn. It&#8217;s not a really first implementation of the project&#8230;it&#8217;s more or less a proof of concept. But we are working hard to kick it out of the door soon.</p>
<p>Subscribe this <a href="http://feeds.feedburner.com/LegolasInMinasTirith ">feeds</a>. I&#8217;ll make announcement here very very soon, and moreover other posts regarding evolutions of this idea.</p>
<p>Would you like to contribute? Have a look to <a href="http://www.javalinuxlabs.org/drupal/?q=node/26" target="_blank">this page</a> to better understand in which area we need help.</p>
<div style="clear:both;">&nbsp;</div>

<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests&amp;desc=%0D%0A%0D%0A%0D%0AI%27ve%20written%20a%20little%20update%20of%20this%20post.%20If%20you%20are%20interested%20joining%20discussion%20started%20around%20this%20blog%20entry%20please%20take%20a%20look%20there%0D%0A%0D%0A%0D%0AWhat%20does%20%22a%20new%20approach%20to%20unit%20tests%22%20mean%3F%20Isn%27t%20JUnit%20or%20TestNG%20enough%20and%20fine%3F%20JUnit%20%28from%20here%20on%20I%27ll%20nominate%20it%20only%20for%20briefness%2C%20but%20Te" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.dzone.com/links/add.html?url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests&amp;description=%0D%0A%0D%0A%0D%0AI%27ve%20written%20a%20little%20update%20of%20this%20post.%20If%20you%20are%20interested%20joining%20discussion%20started%20around%20this%20blog%20entry%20please%20take%20a%20look%20there%0D%0A%0D%0A%0D%0AWhat%20does%20%22a%20new%20approach%20to%20unit%20tests%22%20mean%3F%20Isn%27t%20JUnit%20or%20TestNG%20enough%20and%20fine%3F%20JUnit%20%28from%20here%20on%20I%27ll%20nominate%20it%20only%20for%20briefness%2C%20but%20Te" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;t=A+new+approach+to+unit+tests" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=A+new+approach+to+unit+tests&amp;link=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests&amp;srcUrl=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;srcTitle=A+new+approach+to+unit+tests&amp;snippet=%0D%0A%0D%0A%0D%0AI%27ve%20written%20a%20little%20update%20of%20this%20post.%20If%20you%20are%20interested%20joining%20discussion%20started%20around%20this%20blog%20entry%20please%20take%20a%20look%20there%0D%0A%0D%0A%0D%0AWhat%20does%20%22a%20new%20approach%20to%20unit%20tests%22%20mean%3F%20Isn%27t%20JUnit%20or%20TestNG%20enough%20and%20fine%3F%20JUnit%20%28from%20here%20on%20I%27ll%20nominate%20it%20only%20for%20briefness%2C%20but%20Te" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests&amp;summary=%0D%0A%0D%0A%0D%0AI%27ve%20written%20a%20little%20update%20of%20this%20post.%20If%20you%20are%20interested%20joining%20discussion%20started%20around%20this%20blog%20entry%20please%20take%20a%20look%20there%0D%0A%0D%0A%0D%0AWhat%20does%20%22a%20new%20approach%20to%20unit%20tests%22%20mean%3F%20Isn%27t%20JUnit%20or%20TestNG%20enough%20and%20fine%3F%20JUnit%20%28from%20here%20on%20I%27ll%20nominate%20it%20only%20for%20briefness%2C%20but%20Te&amp;source=Legolas in Minas Tirith" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;bm_description=A+new+approach+to+unit+tests&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/&amp;title=A+new+approach+to+unit+tests" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=RT+%40maeste+A+new+approach+to+unit+tests+-+http://cli.gs/PreTD&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
