<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Re: The Black Art of Good Design</title>
	<link>http://agylen.com/2005/09/15/re-the-black-art-of-good-design/</link>
	<description>Ugo Cei's Weblog</description>
	<pubDate>Tue, 07 Oct 2008 08:43:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Reborg</title>
		<link>http://agylen.com/2005/09/15/re-the-black-art-of-good-design/#comment-264</link>
		<dc:creator>Reborg</dc:creator>
		<pubDate>Thu, 15 Sep 2005 15:47:14 +0000</pubDate>
		<guid>http://agylen.com/2005/09/15/re-the-black-art-of-good-design/#comment-264</guid>
		<description>Well, some points to consider:
- Interfaces (Java interfaces I mean) are not mandatory to drive developing using mocks. Jmock/Cglib version can mock concrete classes. Maybe are there for some other reasons.
- Behavioral testing doesn't force a specific algorithm but a specific set of outgoing relationships and thus interfaces (in a broader sense, not Java interfaces). How those relationships are then used is not forced but of course their presence is checked.
- Mocking system boundaries is one way to use mock objetcts, not the only one. In this case I call them Stubs.
- I agree that behavioral test are less readable (more lines to read instead of state testing), but I think it dependes on the mocking framework.
- I don't think that testing behavior is a way to avoid front design. Instead it forces you to think about a division of responsabilities exactly the same a CRC session can do. And a CRC session is a light-weight front design.

Have a look at http://www.jmock.org/oopsla2004.pdf and http://martinfowler.com/articles/mocksArentStubs.html for an in-depth.</description>
		<content:encoded><![CDATA[<p>Well, some points to consider:<br />
- Interfaces (Java interfaces I mean) are not mandatory to drive developing using mocks. Jmock/Cglib version can mock concrete classes. Maybe are there for some other reasons.<br />
- Behavioral testing doesn&#8217;t force a specific algorithm but a specific set of outgoing relationships and thus interfaces (in a broader sense, not Java interfaces). How those relationships are then used is not forced but of course their presence is checked.<br />
- Mocking system boundaries is one way to use mock objetcts, not the only one. In this case I call them Stubs.<br />
- I agree that behavioral test are less readable (more lines to read instead of state testing), but I think it dependes on the mocking framework.<br />
- I don&#8217;t think that testing behavior is a way to avoid front design. Instead it forces you to think about a division of responsabilities exactly the same a CRC session can do. And a CRC session is a light-weight front design.</p>
<p>Have a look at <a href="http://www.jmock.org/oopsla2004.pdf" rel="nofollow">http://www.jmock.org/oopsla2004.pdf</a> and <a href="http://martinfowler.com/articles/mocksArentStubs.html" rel="nofollow">http://martinfowler.com/articles/mocksArentStubs.html</a> for an in-depth.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Clark</title>
		<link>http://agylen.com/2005/09/15/re-the-black-art-of-good-design/#comment-263</link>
		<dc:creator>Tim Clark</dc:creator>
		<pubDate>Thu, 15 Sep 2005 11:14:16 +0000</pubDate>
		<guid>http://agylen.com/2005/09/15/re-the-black-art-of-good-design/#comment-263</guid>
		<description>You don't have to use interfaces to mock things.  Maybe you should try a different mocking library.  We use jmock and you can mock against interfaces and concrete classes.

My two pence is that if it is hard to test the design is wrong.</description>
		<content:encoded><![CDATA[<p>You don&#8217;t have to use interfaces to mock things.  Maybe you should try a different mocking library.  We use jmock and you can mock against interfaces and concrete classes.</p>
<p>My two pence is that if it is hard to test the design is wrong.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
