<?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: Guidelines for Automated Testing: Defining Test Inputs</title>
	<atom:link href="http://lostechies.com/josharnold/2012/11/28/guidelines-for-automated-testing-defining-test-inputs/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/josharnold/2012/11/28/guidelines-for-automated-testing-defining-test-inputs/</link>
	<description>Startups, open source, and coffee.</description>
	<lastBuildDate>Fri, 24 May 2013 09:15:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: Artëm Smirnov</title>
		<link>http://lostechies.com/josharnold/2012/11/28/guidelines-for-automated-testing-defining-test-inputs/#comment-178</link>
		<dc:creator>Artëm Smirnov</dc:creator>
		<pubDate>Thu, 27 Dec 2012 18:43:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/josharnold/?p=230#comment-178</guid>
		<description>I&#039;ll be happy to read your blog post(s) about those!</description>
		<content:encoded><![CDATA[<p>I&#8217;ll be happy to read your blog post(s) about those!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jmarnold</title>
		<link>http://lostechies.com/josharnold/2012/11/28/guidelines-for-automated-testing-defining-test-inputs/#comment-177</link>
		<dc:creator>jmarnold</dc:creator>
		<pubDate>Thu, 27 Dec 2012 16:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/josharnold/?p=230#comment-177</guid>
		<description>Artëm Smirnov I think this applicable the *most* in acceptance test scenarios -- where you would want to use something like FitNesse or StoryTeller. That being said, I think that the underlying the goal here is simply this: &quot;When I see a failing test, I want to read the test and understand the state of the system, the inputs, and the expected outputs as they relate to the state of the system&quot;. 

The &quot;state of the system&quot; isn&#039;t always applicable. In most cases, unit tests are simple state-based assertions on inputs/outputs so it doesn&#039;t make sense there. Data-dependent tests are what typically get you the most. Declarative data for those tests are invaluable for maintenance.



RE: using string conversion techniques
We leverage FubuCore&#039;s model binding pretty hard. We&#039;ll often create a shorthand syntax to make the data more readable/easier to maintain. 


I&#039;m happy to blog more about those if you find them helpful ;)</description>
		<content:encoded><![CDATA[<p>Artëm Smirnov I think this applicable the *most* in acceptance test scenarios &#8212; where you would want to use something like FitNesse or StoryTeller. That being said, I think that the underlying the goal here is simply this: &#8220;When I see a failing test, I want to read the test and understand the state of the system, the inputs, and the expected outputs as they relate to the state of the system&#8221;. </p>
<p>The &#8220;state of the system&#8221; isn&#8217;t always applicable. In most cases, unit tests are simple state-based assertions on inputs/outputs so it doesn&#8217;t make sense there. Data-dependent tests are what typically get you the most. Declarative data for those tests are invaluable for maintenance.</p>
<p>RE: using string conversion techniques<br />
We leverage FubuCore&#8217;s model binding pretty hard. We&#8217;ll often create a shorthand syntax to make the data more readable/easier to maintain. </p>
<p>I&#8217;m happy to blog more about those if you find them helpful <img src='http://lostechies.com/josharnold/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Artëm Smirnov</title>
		<link>http://lostechies.com/josharnold/2012/11/28/guidelines-for-automated-testing-defining-test-inputs/#comment-176</link>
		<dc:creator>Artëm Smirnov</dc:creator>
		<pubDate>Sun, 23 Dec 2012 15:44:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/josharnold/?p=230#comment-176</guid>
		<description>&quot;Data setup should be declarative&quot; -- how exactly do you accomplish it in your tests -- is it ST-only, or applicable to all tests, unit and integration? Using test attributes maybe? How do you build object graphs declaratively? I&#039;m intrigued by the idea of &quot;using string conversion techniques&quot; -- do you fill up the values from a JSON string? Would make the code simpler, but what about refactoring?

I&#039;m totally into the idea that the inputs belong with your test, but I discovered that often they are worth extracting into their own context class. The name of this class should be clear enough so that we don&#039;t have to look at its code. 

The bottom line is, I do put my inputs in the test class, until it&#039;s so much code that you have to scroll through it in order to get to the point.</description>
		<content:encoded><![CDATA[<p>&#8220;Data setup should be declarative&#8221; &#8212; how exactly do you accomplish it in your tests &#8212; is it ST-only, or applicable to all tests, unit and integration? Using test attributes maybe? How do you build object graphs declaratively? I&#8217;m intrigued by the idea of &#8220;using string conversion techniques&#8221; &#8212; do you fill up the values from a JSON string? Would make the code simpler, but what about refactoring?</p>
<p>I&#8217;m totally into the idea that the inputs belong with your test, but I discovered that often they are worth extracting into their own context class. The name of this class should be clear enough so that we don&#8217;t have to look at its code. </p>
<p>The bottom line is, I do put my inputs in the test class, until it&#8217;s so much code that you have to scroll through it in order to get to the point.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
