<?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 for SalientBlue</title>
	<atom:link href="http://www.salientblue.com/blog/?feed=comments-rss2" rel="self" type="application/rss+xml" />
	<link>http://www.salientblue.com/blog</link>
	<description>It's Salient. And it's Blue!</description>
	<lastBuildDate>Thu, 20 Oct 2011 22:54:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Ted M. Young (@jitterted)</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-812</link>
		<dc:creator>Ted M. Young (@jitterted)</dc:creator>
		<pubDate>Thu, 20 Oct 2011 22:54:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-812</guid>
		<description>(You need to start numbering these for easy referral, e.g., this test INAUT#10.)

I&#039;d generalize &quot;If the mock setup code dwarfs the actual test code… it’s not a Unit Test.&quot; with simply &quot;If the setup code is bigger than the test code...INAUT&quot;. AKA, Test Setup Sermon.</description>
		<content:encoded><![CDATA[<p>(You need to start numbering these for easy referral, e.g., this test INAUT#10.)</p>
<p>I&#8217;d generalize &#8220;If the mock setup code dwarfs the actual test code… it’s not a Unit Test.&#8221; with simply &#8220;If the setup code is bigger than the test code&#8230;INAUT&#8221;. AKA, Test Setup Sermon.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Pablosan</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-811</link>
		<dc:creator>Pablosan</dc:creator>
		<pubDate>Thu, 20 Oct 2011 12:16:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-811</guid>
		<description>Thanks for the comment! Looking at your post now...

Yes, what we are testing and how long the tests take to run are valuable foci. I compiled this list from coaching many teams on good testing practices, not because I want teams to focus on them, but because I find it helpful to use ONE or TWO of these statements to jar someone&#039;s thinking. After many years of coaching, I thought it would be fun to take a light-hearted approach to thinking about Unit Tests.</description>
		<content:encoded><![CDATA[<p>Thanks for the comment! Looking at your post now&#8230;</p>
<p>Yes, what we are testing and how long the tests take to run are valuable foci. I compiled this list from coaching many teams on good testing practices, not because I want teams to focus on them, but because I find it helpful to use ONE or TWO of these statements to jar someone&#8217;s thinking. After many years of coaching, I thought it would be fun to take a light-hearted approach to thinking about Unit Tests.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Pablosan</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-810</link>
		<dc:creator>Pablosan</dc:creator>
		<pubDate>Thu, 20 Oct 2011 12:12:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-810</guid>
		<description>I completely agree; especially on the &quot;no assertions it&#039;s not a test&quot; point! I&#039;m perfectly find with violating any of these as a short-term approach to getting ANY/SOME test coverage so that refactoring can be done safely. Sadly I find most often that the refactoring is put off indefinitely.

So &quot;do what ya gotta do&quot;, but recognize it as technical debt and don&#039;t let that debt continue to grow!</description>
		<content:encoded><![CDATA[<p>I completely agree; especially on the &#8220;no assertions it&#8217;s not a test&#8221; point! I&#8217;m perfectly find with violating any of these as a short-term approach to getting ANY/SOME test coverage so that refactoring can be done safely. Sadly I find most often that the refactoring is put off indefinitely.</p>
<p>So &#8220;do what ya gotta do&#8221;, but recognize it as technical debt and don&#8217;t let that debt continue to grow!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Pablosan</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-809</link>
		<dc:creator>Pablosan</dc:creator>
		<pubDate>Thu, 20 Oct 2011 12:06:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-809</guid>
		<description>Hi Jeff!

Thanks for the comment! When working with legacy code there is no doubt that the state of the code under test makes limiting mocking difficult. I consider that to be a smell: something seems wrong. In the case of extensive mocking being required to get a test up and running, my experience has always been that there are major design problems in the code: encapsulation has been violated, a class is trying to do too much (violates Single Responsibility Principle), etc.

Sometimes, though, I find that the test is unnecessarily complex. I&#039;ve seen this in codebases where a mocking framework has been used for a while and the framework ends up getting abused. So, while a mocking framework can be a very good thing, it can also be an enabler for bad test design.

So while I agree that sometimes extensive setup is required, I would challenge you to consider that as technical debt and look for refactoring opportunities to improve the design of both the code under test and the tests themselves.</description>
		<content:encoded><![CDATA[<p>Hi Jeff!</p>
<p>Thanks for the comment! When working with legacy code there is no doubt that the state of the code under test makes limiting mocking difficult. I consider that to be a smell: something seems wrong. In the case of extensive mocking being required to get a test up and running, my experience has always been that there are major design problems in the code: encapsulation has been violated, a class is trying to do too much (violates Single Responsibility Principle), etc.</p>
<p>Sometimes, though, I find that the test is unnecessarily complex. I&#8217;ve seen this in codebases where a mocking framework has been used for a while and the framework ends up getting abused. So, while a mocking framework can be a very good thing, it can also be an enabler for bad test design.</p>
<p>So while I agree that sometimes extensive setup is required, I would challenge you to consider that as technical debt and look for refactoring opportunities to improve the design of both the code under test and the tests themselves.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Pablosan</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-808</link>
		<dc:creator>Pablosan</dc:creator>
		<pubDate>Thu, 20 Oct 2011 11:55:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-808</guid>
		<description>Excellent! I think I will eventually update my post with some of the viewer additions. They&#039;re great! :)</description>
		<content:encoded><![CDATA[<p>Excellent! I think I will eventually update my post with some of the viewer additions. They&#8217;re great! <img src='http://www.salientblue.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Pablosan</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-807</link>
		<dc:creator>Pablosan</dc:creator>
		<pubDate>Thu, 20 Oct 2011 11:54:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-807</guid>
		<description>Very true. These are mostly negative descriptions of integration tests. However, I find it useful when working with new teams to give them an idea of what a Unit Test is NOT... and I just finally decided to take a light-hearted approach to compiling a list.</description>
		<content:encoded><![CDATA[<p>Very true. These are mostly negative descriptions of integration tests. However, I find it useful when working with new teams to give them an idea of what a Unit Test is NOT&#8230; and I just finally decided to take a light-hearted approach to compiling a list.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Pablosan</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-806</link>
		<dc:creator>Pablosan</dc:creator>
		<pubDate>Thu, 20 Oct 2011 11:52:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-806</guid>
		<description>Brilliant!</description>
		<content:encoded><![CDATA[<p>Brilliant!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Thomas Koch</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-804</link>
		<dc:creator>Thomas Koch</dc:creator>
		<pubDate>Thu, 20 Oct 2011 07:21:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-804</guid>
		<description>If the test run touches half of all classes of your application ... it&#039;s not a unit test
If either all tests pass or nearly half of them fail if you change one line of code - INAUT</description>
		<content:encoded><![CDATA[<p>If the test run touches half of all classes of your application &#8230; it&#8217;s not a unit test<br />
If either all tests pass or nearly half of them fail if you change one line of code &#8211; INAUT</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by mika</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-803</link>
		<dc:creator>mika</dc:creator>
		<pubDate>Thu, 20 Oct 2011 00:38:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-803</guid>
		<description>Here is a superset :

If it&#039;s an Integration Test .... it&#039;s not a Unit Test.</description>
		<content:encoded><![CDATA[<p>Here is a superset :</p>
<p>If it&#8217;s an Integration Test &#8230;. it&#8217;s not a Unit Test.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8230;it&#8217;s not a Unit Test by Fabio Pereira</title>
		<link>http://www.salientblue.com/blog/?p=343&#038;cpage=1#comment-802</link>
		<dc:creator>Fabio Pereira</dc:creator>
		<pubDate>Thu, 20 Oct 2011 00:09:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.salientblue.com/blog/?p=343#comment-802</guid>
		<description>I find it a lot more relevant and useful to discuss and understand WHAT functionality the tests are testing and how long they take to run other than what we really call them (unit, integration, poporn, bacon). I have been finding a lot of tests that ARE called &quot;unit tests&quot;, if we use your definition criteria above, but they don&#039;t test anything really. I call those tests Tautological and the practice of writing those tests TTDD - TautologicalTDD.

When we educate people that unit tests have to follow all those rules the tests end up becoming tautological due to the fact that everyone tries to isolate every single dependency around a single class.

I&#039;d appreciate some feedback and your thoughts on this as well... Cheers

http://fabiopereira.me/blog/2010/05/27/ttdd-tautological-test-driven-development-anti-pattern/</description>
		<content:encoded><![CDATA[<p>I find it a lot more relevant and useful to discuss and understand WHAT functionality the tests are testing and how long they take to run other than what we really call them (unit, integration, poporn, bacon). I have been finding a lot of tests that ARE called &#8220;unit tests&#8221;, if we use your definition criteria above, but they don&#8217;t test anything really. I call those tests Tautological and the practice of writing those tests TTDD &#8211; TautologicalTDD.</p>
<p>When we educate people that unit tests have to follow all those rules the tests end up becoming tautological due to the fact that everyone tries to isolate every single dependency around a single class.</p>
<p>I&#8217;d appreciate some feedback and your thoughts on this as well&#8230; Cheers</p>
<p><a href="http://fabiopereira.me/blog/2010/05/27/ttdd-tautological-test-driven-development-anti-pattern/" rel="nofollow">http://fabiopereira.me/blog/2010/05/27/ttdd-tautological-test-driven-development-anti-pattern/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.225 seconds -->

