<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-8347429717895274754.post4987954884275024150..comments</id><updated>2010-01-25T17:16:37.835-05:00</updated><category term='tethering'/><category term='logging'/><category term='socketio'/><category term='clustering'/><category term='javascript'/><category term='mycila-event'/><category term='websocket'/><category term='redis'/><category term='actors'/><category term='usbkey'/><category term='junit'/><category term='maven'/><category term='disk'/><category term='gzip'/><category term='conference'/><category term='long-polling'/><category term='syncasync'/><category term='backtrack'/><category term='hostapd'/><category term='job'/><category term='git'/><category term='jetty'/><category term='polling'/><category term='mycila-log'/><category term='video'/><category term='top'/><category term='nosql'/><category term='cometd'/><category term='piggyback'/><category term='reverse'/><category term='eventbus'/><category term='google-guice'/><category term='linux'/><category term='apache'/><category term='shell script'/><category term='cvs'/><category term='scala'/><category term='atmosphere'/><category term='java'/><category term='jug'/><category term='ajax'/><category term='streaming'/><category term='minidlna'/><category term='projecteuler'/><category term='ffmpeg'/><category term='godaddy'/><category term='log4j'/><category term='xmltool'/><category term='intellij idea'/><category term='jquery'/><category term='android'/><category term='blogger'/><category term='wireless'/><category term='groovy'/><category term='mercury'/><category term='twitter'/><category term='event-driven'/><category term='dlna'/><category term='mathematics'/><category term='mycila-ujd'/><category term='ubuntu'/><category term='testing'/><category term='reverse-ajax'/><category term='subversion'/><category term='nautilus'/><title type='text'>Comments on Mycila Blog: Writing your own JUnit extensions using @Rule</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.mycila.com/feeds/4987954884275024150/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html'/><author><name>Mathieu Carbou</name><uri>http://www.blogger.com/profile/00930474255299192020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_t3Vsly_Uzx8/S4vnUPstjUI/AAAAAAAAAH4/eChzic7v7qU/S220/mathieu.carbou%40gmail.com_fee0de57.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-4007895470613621655</id><published>2010-01-25T17:16:37.835-05:00</published><updated>2010-01-25T17:16:37.835-05:00</updated><title type='text'>Just what I was looking for. I wanted to intercept...</title><content type='html'>Just what I was looking for. I wanted to intercept the test method name and JUnit implements already this functionnality with Rule.&lt;br /&gt;&lt;br /&gt; public class NameRuleTest {&lt;br /&gt;  @Rule public TestName name = new TestName();&lt;br /&gt;  &lt;br /&gt;  @Test public void testA() {&lt;br /&gt;   assertEquals(&amp;quot;testA&amp;quot;, name.getMethodName());&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  @Test public void testB() {&lt;br /&gt;   assertEquals(&amp;quot;testB&amp;quot;, name.getMethodName());&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks. This blog entry is realy useful.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4007895470613621655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4007895470613621655'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1264457797835#c4007895470613621655' title=''/><author><name>Olivier Catteau</name><uri>http://www.stateofmind.fr</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-221849850'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-4998502222511292515</id><published>2009-12-29T14:21:15.431-05:00</published><updated>2009-12-29T14:21:15.431-05:00</updated><title type='text'>nice tone. thanks</title><content type='html'>nice tone. thanks</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4998502222511292515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4998502222511292515'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1262114475431#c4998502222511292515' title=''/><author><name>Toby</name><uri>http://www.blogger.com/profile/04194536551624560525</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_-uMxV_fCbC4/SczyS5z_i6I/AAAAAAAADck/O8HLrvMRmBM/S220/A-Monkey-King.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-272362793'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-7220074472036305186</id><published>2009-12-29T12:01:49.010-05:00</published><updated>2009-12-29T12:01:49.010-05:00</updated><title type='text'>If you debug and learn how Junit is built, perhaps...</title><content type='html'>If you debug and learn how Junit is built, perhaps you&amp;#39;ll understand much more why &lt;br /&gt;&lt;br /&gt;if(throwable != null) throw throwable;&lt;br /&gt;&lt;br /&gt;is required.&lt;br /&gt;&lt;br /&gt;A Junit test method is executed as a Statement. By default, implemented as an InvokeMethod. If you put in your test @Test(expected=Foo.class), Junit wraps the InvokeMethod around an ExpectException.&lt;br /&gt;&lt;br /&gt;So what is executed in parallel is NOT THE TEST METHOD but THE WHOLE TEST INCLUDING THE EXCEPTION ASSERTION.&lt;br /&gt;&lt;br /&gt;What ExpectException statement does:&lt;br /&gt;1. run the surrounded statement&lt;br /&gt;2. if it fails, check that the expected exception is the one we got&lt;br /&gt;2.1 IF YES: all is good =&amp;gt; don&amp;#39;t rethrow any excception since the test passed&lt;br /&gt;2.2 IF NO: throw an assertion error saying that we expected Foo.class but we got anothe exception.&lt;br /&gt;&lt;br /&gt;In your case, you run in parallel a test throwing an AssertionError, but you expect an IOException. So the Junit Statement throws an AssertionError saying this.&lt;br /&gt;&lt;br /&gt;Since the test is run in parallel, this laster exception is trapped and rethrown by &lt;br /&gt;&lt;br /&gt;if(throwable != null) throw throwable;&lt;br /&gt;&lt;br /&gt;=&amp;gt; @Test(expecte=Foo.class) does not assert against the exception thrown by &lt;br /&gt;&lt;br /&gt;if(throwable != null) throw throwable;&lt;br /&gt;&lt;br /&gt;but assert against the exception thrown by the test method.&lt;br /&gt;&lt;br /&gt;That&amp;#39;s why &lt;br /&gt;&lt;br /&gt;if(throwable != null) throw throwable;&lt;br /&gt;&lt;br /&gt;is required. And if you look a little deeper with a debugger, you should see that &amp;#39;throwable&amp;#39; has the value:&lt;br /&gt;&lt;br /&gt;Unexpected exception, expected but was&lt;br /&gt;&lt;br /&gt;This is the exception Junit created in the ExpectException statement, executed 10 times concurrently.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/7220074472036305186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/7220074472036305186'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1262106109010#c7220074472036305186' title=''/><author><name>Mathieu Carbou</name><uri>http://www.blogger.com/profile/00930474255299192020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/_t3Vsly_Uzx8/SdGUgTjN4JI/AAAAAAAAAC8/m9Brhl-TeQg/S220/moi.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-773040195'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-4617102859202298721</id><published>2009-12-29T10:31:30.888-05:00</published><updated>2009-12-29T10:31:30.888-05:00</updated><title type='text'>Its not that, if you remove the rethrow line but s...</title><content type='html'>Its not that, if you remove the rethrow line but still throw an exception in your (now parallel) test, with an expected class for Foo but you actually throw a Bar. You get a pass, it doesn&amp;#39;t say  expected but was.&lt;br /&gt;&lt;br /&gt;With the throw back in, its all fine. What I was getting at here is how to write a unit test to prove that the rethrow has been put in the code. At the moment it looks like a false positive.&lt;br /&gt;&lt;br /&gt;See you amended code to demonstrate the point at http://pastie.org/760070 (surely, this test should fail?)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4617102859202298721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4617102859202298721'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1262100690888#c4617102859202298721' title=''/><author><name>Toby</name><uri>http://www.blogger.com/profile/04194536551624560525</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_-uMxV_fCbC4/SczyS5z_i6I/AAAAAAAADck/O8HLrvMRmBM/S220/A-Monkey-King.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-272362793'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-4019489548510225991</id><published>2009-12-28T11:18:56.279-05:00</published><updated>2009-12-28T11:18:56.279-05:00</updated><title type='text'>Junit&amp;#39;s behavior is good: what you are running...</title><content type='html'>Junit&amp;#39;s behavior is good: what you are running in parallel is a statement, which contains the whole steps of the Junit test : execution + post-execution tests like the ExpectedException if you define one.&lt;br /&gt;&lt;br /&gt;If you expect an exception to happen, this is logical that the test doesn&amp;#39;t fail if this exception is really thrown.&lt;br /&gt;&lt;br /&gt;You can test by throwing a different exception, or by removing expected=... in @Test. You&amp;#39;ll see that the test fails.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4019489548510225991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4019489548510225991'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1262017136279#c4019489548510225991' title=''/><author><name>Mathieu Carbou</name><uri>http://www.blogger.com/profile/00930474255299192020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/_t3Vsly_Uzx8/SdGUgTjN4JI/AAAAAAAAAC8/m9Brhl-TeQg/S220/moi.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-773040195'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-6990441014811808311</id><published>2009-12-28T07:13:41.129-05:00</published><updated>2009-12-28T07:13:41.129-05:00</updated><title type='text'>ah, I spotted the behavior in ExpectException, I c...</title><content type='html'>ah, I spotted the behavior in ExpectException, I can&amp;#39;t figure out tthough that if an exception is thrown from another thread, it gets swallowed somewhere as without the re-throw line above you get a green bar when the exception was thrown, caught (on another thread) so never thrown on the test thread. I figure the test should go red in this case because its expecting a X exception which it doesn&amp;#39;t get (as its thrown on another thread). Unless its the ExpectException statement that is still on the main thread...&lt;br /&gt;&lt;br /&gt;At least that&amp;#39;s what&amp;#39;s confusing me at the moment. I&amp;#39;m not explaining it very well, but its got me all in a tiz waz!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/6990441014811808311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/6990441014811808311'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1262002421129#c6990441014811808311' title=''/><author><name>Toby</name><uri>http://www.blogger.com/profile/04194536551624560525</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_-uMxV_fCbC4/SczyS5z_i6I/AAAAAAAADck/O8HLrvMRmBM/S220/A-Monkey-King.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-272362793'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-7592620419260535838</id><published>2009-12-27T14:14:24.113-05:00</published><updated>2009-12-27T14:14:24.113-05:00</updated><title type='text'>No, this is because when you use @Test(expected = ...</title><content type='html'>No, this is because when you use @Test(expected = ...), Junit create a statement surrounding the statement executing the test method. It means that when we run statement.execute(), the ExpectedException statement runs and call the InvokeMethod statement. If the latter fails,the ExpectedException statement will check the exception and match it against the expected.&lt;br /&gt;&lt;br /&gt;The code &lt;br /&gt;if(throwable != null) throw throwable;&lt;br /&gt;is only required for a failing test throwing an exception.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/7592620419260535838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/7592620419260535838'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261941264113#c7592620419260535838' title=''/><author><name>Mathieu Carbou</name><uri>http://www.blogger.com/profile/00930474255299192020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/_t3Vsly_Uzx8/SdGUgTjN4JI/AAAAAAAAAC8/m9Brhl-TeQg/S220/moi.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-773040195'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-5873789948210449941</id><published>2009-12-27T13:41:46.955-05:00</published><updated>2009-12-27T13:41:46.955-05:00</updated><title type='text'>Did you run the test red above? It seems if you co...</title><content type='html'>Did you run the test red above? It seems if you comment out the line&lt;br /&gt;&lt;br /&gt;if(throwable != null) throw throwable;&lt;br /&gt;&lt;br /&gt;it still runs green, is that a false positive?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/5873789948210449941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/5873789948210449941'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261939306955#c5873789948210449941' title=''/><author><name>Toby</name><uri>http://www.blogger.com/profile/04194536551624560525</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_-uMxV_fCbC4/SczyS5z_i6I/AAAAAAAADck/O8HLrvMRmBM/S220/A-Monkey-King.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-272362793'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-7938053215788382439</id><published>2009-12-27T05:59:54.455-05:00</published><updated>2009-12-27T05:59:54.455-05:00</updated><title type='text'>Great, I like the completion service version. It w...</title><content type='html'>Great, I like the completion service version. It was bugging me that in my version it&amp;#39;d wouldn&amp;#39;t return fast (as in the first thread in the list must finish before things continue, when the second in the list may have already finished).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/7938053215788382439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/7938053215788382439'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261911594455#c7938053215788382439' title=''/><author><name>Toby</name><uri>http://www.blogger.com/profile/04194536551624560525</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_-uMxV_fCbC4/SczyS5z_i6I/AAAAAAAADck/O8HLrvMRmBM/S220/A-Monkey-King.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-272362793'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-6426607222122055476</id><published>2009-12-23T16:14:07.273-05:00</published><updated>2009-12-23T16:14:07.273-05:00</updated><title type='text'>Hi Mathiu,
glad to see thar we have arrived to a s...</title><content type='html'>Hi Mathiu,&lt;br /&gt;glad to see thar we have arrived to a similar solution(currently I must yet refactorize it and writing some unit test and checking...this version was temporary): http://pastie.org/753201</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/6426607222122055476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/6426607222122055476'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261602847273#c6426607222122055476' title=''/><author><name>Indrit Selimi</name><uri>http://www.voronoigame.com/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1962757125'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-1241638016234104623</id><published>2009-12-23T13:53:52.493-05:00</published><updated>2009-12-23T13:53:52.493-05:00</updated><title type='text'>Yes it&amp;#39;s a good idea ! Instead of playing with...</title><content type='html'>Yes it&amp;#39;s a good idea ! Instead of playing with threads, it can be simply and much more reliable to use instead FutureTask or CompletionService to handle execution and get the results or exceptions thrown.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve updated this post to give an example.&lt;br /&gt;&lt;br /&gt;Thanks !</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/1241638016234104623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/1241638016234104623'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261594432493#c1241638016234104623' title=''/><author><name>Mathieu Carbou</name><uri>http://www.blogger.com/profile/00930474255299192020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/_t3Vsly_Uzx8/SdGUgTjN4JI/AAAAAAAAAC8/m9Brhl-TeQg/S220/moi.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-773040195'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-8357815064986820966</id><published>2009-12-23T11:50:27.249-05:00</published><updated>2009-12-23T11:50:27.249-05:00</updated><title type='text'>Great post. 

How&amp;#39;d you like 

http://code.goo...</title><content type='html'>Great post. &lt;br /&gt;&lt;br /&gt;How&amp;#39;d you like &lt;br /&gt;&lt;br /&gt;http://code.google.com/p/tempus-fugit/source/browse/trunk/tempus-fugit/src/main/java/com/google/code/tempusfugit/concurrency/RunConcurrently.java&lt;br /&gt;&lt;br /&gt;as an alternative? I wanted to try and get any failure thrown on a non-test thread to still fail the test. Its a bit rough and ready at the moment but I had fun coding it!&lt;br /&gt;&lt;br /&gt;cheers</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/8357815064986820966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/8357815064986820966'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261587027249#c8357815064986820966' title=''/><author><name>Toby</name><uri>http://www.blogger.com/profile/04194536551624560525</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_-uMxV_fCbC4/SczyS5z_i6I/AAAAAAAADck/O8HLrvMRmBM/S220/A-Monkey-King.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-272362793'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-4800601440787004324</id><published>2009-12-22T10:19:47.961-05:00</published><updated>2009-12-22T10:19:47.961-05:00</updated><title type='text'>Yes you&amp;#39;re right. In case the Statement is not...</title><content type='html'>Yes you&amp;#39;re right. In case the Statement is not an instance of InvokeMethod, I was skipping its call... I am fixing it now.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4800601440787004324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/4800601440787004324'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261495187961#c4800601440787004324' title=''/><author><name>Mathieu Carbou</name><uri>http://www.blogger.com/profile/00930474255299192020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/_t3Vsly_Uzx8/SdGUgTjN4JI/AAAAAAAAAC8/m9Brhl-TeQg/S220/moi.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-773040195'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-8702816453900651692</id><published>2009-12-22T06:49:03.077-05:00</published><updated>2009-12-22T06:49:03.077-05:00</updated><title type='text'>A little question, shouldn&amp;#39;t you call 
stateme...</title><content type='html'>A little question, shouldn&amp;#39;t you call &lt;br /&gt;statement.evaluate() (statement is the param) &lt;br /&gt;instead of &lt;br /&gt;frameworkMethod.invokeExplosively(o)?&lt;br /&gt;&lt;br /&gt;Probably I&amp;#39;m wrong but it seemed to me that Kent Beck in his blog entry on @Interceptor says that the target and the method parameters are there for additional validation/logging purpose?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/8702816453900651692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/8702816453900651692'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261482543077#c8702816453900651692' title=''/><author><name>Indrit Selimi</name><uri>http://www.voronoigame.com</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-783458314'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-8545861310505818110</id><published>2009-12-21T11:00:12.385-05:00</published><updated>2009-12-21T11:00:12.385-05:00</updated><title type='text'>Very interesting and useful blog entry!
Thank you....</title><content type='html'>Very interesting and useful blog entry!&lt;br /&gt;Thank you.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/8545861310505818110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/8545861310505818110'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1261411212385#c8545861310505818110' title=''/><author><name>Indrit Selimi</name><uri>http://www.voronoigame.com</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-783458314'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-863083269598699113</id><published>2009-12-04T20:34:22.788-05:00</published><updated>2009-12-04T20:34:22.788-05:00</updated><title type='text'>Yes absolutely ! I&amp;#39;ve fixed the code.
Thank yo...</title><content type='html'>Yes absolutely ! I&amp;#39;ve fixed the code.&lt;br /&gt;Thank you !</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/863083269598699113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/863083269598699113'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1259976862788#c863083269598699113' title=''/><author><name>Mathieu Carbou</name><uri>http://www.blogger.com/profile/00930474255299192020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/_t3Vsly_Uzx8/SdGUgTjN4JI/AAAAAAAAAC8/m9Brhl-TeQg/S220/moi.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-773040195'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-8851574870135227954</id><published>2009-12-04T06:11:32.446-05:00</published><updated>2009-12-04T06:11:32.446-05:00</updated><title type='text'>If go.await() is interrupted, shouldn&amp;#39;t you ei...</title><content type='html'>If go.await() is interrupted, shouldn&amp;#39;t you either throw the exception or at least not execute the actual test?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/8851574870135227954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/8851574870135227954'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1259925092446#c8851574870135227954' title=''/><author><name>Robert Munteanu</name><uri>http://www.blogger.com/profile/13908222919248232461</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-163309324'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-6985796377878012019</id><published>2009-11-17T09:24:11.869-05:00</published><updated>2009-11-17T09:24:11.869-05:00</updated><title type='text'>Sorry! It&amp;#39;s corrected.</title><content type='html'>Sorry! It&amp;#39;s corrected.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/6985796377878012019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/6985796377878012019'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1258467851869#c6985796377878012019' title=''/><author><name>Mathieu Carbou</name><uri>http://www.blogger.com/profile/00930474255299192020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/_t3Vsly_Uzx8/SdGUgTjN4JI/AAAAAAAAAC8/m9Brhl-TeQg/S220/moi.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-773040195'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-5396979689233600894</id><published>2009-11-17T02:47:37.096-05:00</published><updated>2009-11-17T02:47:37.096-05:00</updated><title type='text'>Few times you mention &amp;quot;ManageRule&amp;quot; inste...</title><content type='html'>Few times you mention &amp;quot;ManageRule&amp;quot; instead of MethodRule.&lt;br /&gt;Cheers</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/5396979689233600894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/5396979689233600894'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1258444057096#c5396979689233600894' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-694152005'/></entry><entry><id>tag:blogger.com,1999:blog-8347429717895274754.post-9071462542038730979</id><published>2009-11-11T17:29:54.834-05:00</published><updated>2009-11-11T17:29:54.834-05:00</updated><title type='text'>Hi Mathieu, good to know.  Thanks.

I started to n...</title><content type='html'>Hi Mathieu, good to know.  Thanks.&lt;br /&gt;&lt;br /&gt;I started to notice your blog a while ago.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/9071462542038730979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8347429717895274754/4987954884275024150/comments/default/9071462542038730979'/><link rel='alternate' type='text/html' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html?showComment=1257978594834#c9071462542038730979' title=''/><author><name>CRAZYDREAMER</name><uri>http://www.blogger.com/profile/16585751707101527304</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mycila.com/2009/11/writing-your-own-junit-extensions-using.html' ref='tag:blogger.com,1999:blog-8347429717895274754.post-4987954884275024150' source='http://www.blogger.com/feeds/8347429717895274754/posts/default/4987954884275024150' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-965163961'/></entry></feed>
