<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Eclipse and TDD (Part 2)</title>
	<atom:link href="http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html/feed" rel="self" type="application/rss+xml" />
	<link>http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html</link>
	<description>Where he blogs about his eclipse musings</description>
	<lastBuildDate>Wed, 30 Nov 2011 05:37:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: Ketan</title>
		<link>http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html/comment-page-1#comment-81</link>
		<dc:creator>Ketan</dc:creator>
		<pubDate>Mon, 15 Oct 2007 07:44:26 +0000</pubDate>
		<guid isPermaLink="false">http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html#comment-81</guid>
		<description>Kerry Buckley wrote:
&lt;blockquote&gt;One option is to develop a quick-and-dirty spike to gain an understanding of what you need to do, then throw it away and re-code it, this time using TDD.&lt;/blockquote&gt;

That is definitely a good option, but a really cumbersome one, to be frank. There are tons of API that I&#039;m talking about. Hitting new API everyday, spiking it out, and then doing TDD is I&#039;d say a big pain-in-the-ass.</description>
		<content:encoded><![CDATA[<p>Kerry Buckley wrote:</p>
<blockquote><p>One option is to develop a quick-and-dirty spike to gain an understanding of what you need to do, then throw it away and re-code it, this time using TDD.</p></blockquote>
<p>That is definitely a good option, but a really cumbersome one, to be frank. There are tons of API that I&#8217;m talking about. Hitting new API everyday, spiking it out, and then doing TDD is I&#8217;d say a big pain-in-the-ass.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nirav Thaker</title>
		<link>http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html/comment-page-1#comment-80</link>
		<dc:creator>Nirav Thaker</dc:creator>
		<pubDate>Sun, 14 Oct 2007 03:31:08 +0000</pubDate>
		<guid isPermaLink="false">http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html#comment-80</guid>
		<description>I&#039;m somehow not sure what you are trying to question, but let me just share my limited TDD experience with Eclipse in context you described.

Most of the important Eclipse interfaces are well documented but reading docs doesn&#039;t ascertain what it will do  (for example API of an IAdaptable returning IAdaptable means it may do anything). Eclipse can&#039;t give solid test framework like Spring because of it&#039;s size (there are just too many things in Eclipse) but what it provides (test APIs in the famous classes) is good enough together with tools like PDE-JUnit (TPTP, http://help.eclipse.org/help32/topic/org.eclipse.hyades.test.doc.user/concepts/cintro.htm), not excellent though.

So I would say you should definitely know the contract before you implement or mock arbitrary interfaces, and Eclipse generally doesn&#039;t kick into your application unless it depends too much on Eclipse internals (which is a design smell anyway). And as you know it, assuming is never a good idea in software development in general.</description>
		<content:encoded><![CDATA[<p>I&#8217;m somehow not sure what you are trying to question, but let me just share my limited TDD experience with Eclipse in context you described.</p>
<p>Most of the important Eclipse interfaces are well documented but reading docs doesn&#8217;t ascertain what it will do  (for example API of an IAdaptable returning IAdaptable means it may do anything). Eclipse can&#8217;t give solid test framework like Spring because of it&#8217;s size (there are just too many things in Eclipse) but what it provides (test APIs in the famous classes) is good enough together with tools like PDE-JUnit (TPTP, <a href="http://help.eclipse.org/help32/topic/org.eclipse.hyades.test.doc.user/concepts/cintro.htm" rel="nofollow">http://help.eclipse.org/help32/topic/org.eclipse.hyades.test.doc.user/concepts/cintro.htm</a>), not excellent though.</p>
<p>So I would say you should definitely know the contract before you implement or mock arbitrary interfaces, and Eclipse generally doesn&#8217;t kick into your application unless it depends too much on Eclipse internals (which is a design smell anyway). And as you know it, assuming is never a good idea in software development in general.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jay Levitt</title>
		<link>http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html/comment-page-1#comment-79</link>
		<dc:creator>Jay Levitt</dc:creator>
		<pubDate>Sat, 13 Oct 2007 23:16:47 +0000</pubDate>
		<guid isPermaLink="false">http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html#comment-79</guid>
		<description>Ah, now I think I see what you&#039;re saying.  I work in Ruby, not Java, so that initial exploration is even more exploratory; the &quot;interface&quot; I&#039;m calling could be anything at all, dynamically-defined methods, maybe even methods that don&#039;t really exist.  Usually, there&#039;s some documentation, but if not, I have to poke through the library source code to see what it&#039;s expecting and what methods it provides.

I&#039;ll admit that when I first start playing with a library, I may write a &quot;hello world&quot; type program just to see if I&#039;m making the right calls in the right order.  But even then, it&#039;s not hard to do that &quot;hello world&quot; in JUnit; just assert that the output of the routine is &quot;hello world&quot;!  Sometimes I even cheat at first, and leave off the assertion; as long as the test gets to the end without crashing, I know I&#039;ve done something vaguely right, and then I can think about how to test the outcome.

That maps most closely to your first and second method - play around a bit, read the docs, make sure you&#039;re not totally in the dark, and then do it test-first.  You definitely don&#039;t want to go down the road of #3; don&#039;t write tests for things you don&#039;t use.

Having never done any Java programming, let alone Eclipse, I can&#039;t be more specific without seeing an example.  But, coincidentally, one of my upcoming projects is to try to add some unit tests to a popular Eclipse plugin that doesn&#039;t currently have any (using the &quot;start with a bug report&quot; method), so this problem is intriguing.  If you&#039;re so inclined, you can drop me an e-mail at &quot;jay at jay dot eff-em&quot; with some more concrete info on what you&#039;re implementing, and maybe we can walk through unit-testing it together.</description>
		<content:encoded><![CDATA[<p>Ah, now I think I see what you&#8217;re saying.  I work in Ruby, not Java, so that initial exploration is even more exploratory; the &#8220;interface&#8221; I&#8217;m calling could be anything at all, dynamically-defined methods, maybe even methods that don&#8217;t really exist.  Usually, there&#8217;s some documentation, but if not, I have to poke through the library source code to see what it&#8217;s expecting and what methods it provides.</p>
<p>I&#8217;ll admit that when I first start playing with a library, I may write a &#8220;hello world&#8221; type program just to see if I&#8217;m making the right calls in the right order.  But even then, it&#8217;s not hard to do that &#8220;hello world&#8221; in JUnit; just assert that the output of the routine is &#8220;hello world&#8221;!  Sometimes I even cheat at first, and leave off the assertion; as long as the test gets to the end without crashing, I know I&#8217;ve done something vaguely right, and then I can think about how to test the outcome.</p>
<p>That maps most closely to your first and second method &#8211; play around a bit, read the docs, make sure you&#8217;re not totally in the dark, and then do it test-first.  You definitely don&#8217;t want to go down the road of #3; don&#8217;t write tests for things you don&#8217;t use.</p>
<p>Having never done any Java programming, let alone Eclipse, I can&#8217;t be more specific without seeing an example.  But, coincidentally, one of my upcoming projects is to try to add some unit tests to a popular Eclipse plugin that doesn&#8217;t currently have any (using the &#8220;start with a bug report&#8221; method), so this problem is intriguing.  If you&#8217;re so inclined, you can drop me an e-mail at &#8220;jay at jay dot eff-em&#8221; with some more concrete info on what you&#8217;re implementing, and maybe we can walk through unit-testing it together.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kerry Buckley</title>
		<link>http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html/comment-page-1#comment-78</link>
		<dc:creator>Kerry Buckley</dc:creator>
		<pubDate>Sat, 13 Oct 2007 21:14:34 +0000</pubDate>
		<guid isPermaLink="false">http://ketan.padegaonkar.name/2007/10/14/eclipse-and-tdd-part-2.html#comment-78</guid>
		<description>One option is to develop a quick-and-dirty spike to gain an understanding of what you need to do, then throw it away and re-code it, this time using TDD.</description>
		<content:encoded><![CDATA[<p>One option is to develop a quick-and-dirty spike to gain an understanding of what you need to do, then throw it away and re-code it, this time using TDD.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

