<?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"
	>
<channel>
	<title>Comments on: The lost FlexUnit documentation</title>
	<atom:link href="http://blog.iconara.net/2007/02/06/flexunit/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.iconara.net/2007/02/06/flexunit/</link>
	<description></description>
	<pubDate>Fri, 21 Nov 2008 14:01:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: (B)logger vom hogger &#187; Blog Archive &#187; Testdriven development (TDD) with Adobe Flex, Air</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-7165</link>
		<dc:creator>(B)logger vom hogger &#187; Blog Archive &#187; Testdriven development (TDD) with Adobe Flex, Air</dc:creator>
		<pubDate>Thu, 31 Jul 2008 14:24:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-7165</guid>
		<description>&lt;p&gt;[...] bad examples, poor documentation, some bugs related to asynchrous testing. Some issues are already discussed in this blog entry. If you want a &#8220;good&#8221; starting you should read [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] bad examples, poor documentation, some bugs related to asynchrous testing. Some issues are already discussed in this blog entry. If you want a &#8220;good&#8221; starting you should read [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Yevgeny Dorogaykin</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-6813</link>
		<dc:creator>Yevgeny Dorogaykin</dc:creator>
		<pubDate>Tue, 03 Jun 2008 14:30:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-6813</guid>
		<description>&lt;p&gt;Thanks Theo for your answer.
You've understood my question right.Actually I prefer 3 possibility:
1. an instance of TestClass is created
2. setUp runs
3. test1 runs
4. test2 runs
5. test3 runs
6. tearDown runs&lt;/p&gt;

&lt;p&gt;That's what I know from Nunit. For me it's more natural behaviour.  I definitely will check dpUnit.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks Theo for your answer.
You&#8217;ve understood my question right.Actually I prefer 3 possibility:
1. an instance of TestClass is created
2. setUp runs
3. test1 runs
4. test2 runs
5. test3 runs
6. tearDown runs</p>

<p>That&#8217;s what I know from Nunit. For me it&#8217;s more natural behaviour.  I definitely will check dpUnit.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Theo</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-6812</link>
		<dc:creator>Theo</dc:creator>
		<pubDate>Tue, 03 Jun 2008 14:16:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-6812</guid>
		<description>&lt;p&gt;Yevgeny,&lt;/p&gt;

&lt;p&gt;I'm not sure I understand exactly what you ask, but this is what would happen with your example test case:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;an instance of TestClass is created&lt;/li&gt;
&lt;li&gt;setUp runs&lt;/li&gt;
&lt;li&gt;test1 runs&lt;/li&gt;
&lt;li&gt;tearDown runs&lt;/li&gt;
&lt;li&gt;another instance of TestClass is created&lt;/li&gt;
&lt;li&gt;setUp runs&lt;/li&gt;
&lt;li&gt;test2 runs&lt;/li&gt;
&lt;li&gt;tearDown runs&lt;/li&gt;
&lt;li&gt;a third instance of TestClass is created&lt;/li&gt;
&lt;li&gt;setUp runs&lt;/li&gt;
&lt;li&gt;test3 runs
12 tearDown runs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each test is run in its own instance of the test case class.&lt;/p&gt;

&lt;p&gt;If this bothers you very much switch to dpUnit which does this instead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;an instance of TestClass is created&lt;/li&gt;
&lt;li&gt;setUp runs&lt;/li&gt;
&lt;li&gt;test1 runs&lt;/li&gt;
&lt;li&gt;tearDown runs&lt;/li&gt;
&lt;li&gt;setUp runs&lt;/li&gt;
&lt;li&gt;test2 runs&lt;/li&gt;
&lt;li&gt;tearDown runs&lt;/li&gt;
&lt;li&gt;setUp runs&lt;/li&gt;
&lt;li&gt;test3 runs&lt;/li&gt;
&lt;li&gt;tearDown runs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;...which makes more sense. dpUnit also supports asynchronous setUp and some other things that FlexUnit don't have. I've switched myself and I'm not looking back.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Yevgeny,</p>

<p>I&#8217;m not sure I understand exactly what you ask, but this is what would happen with your example test case:</p>

<ol>
<li>an instance of TestClass is created</li>
<li>setUp runs</li>
<li>test1 runs</li>
<li>tearDown runs</li>
<li>another instance of TestClass is created</li>
<li>setUp runs</li>
<li>test2 runs</li>
<li>tearDown runs</li>
<li>a third instance of TestClass is created</li>
<li>setUp runs</li>
<li>test3 runs
12 tearDown runs</li>
</ol>

<p>Each test is run in its own instance of the test case class.</p>

<p>If this bothers you very much switch to dpUnit which does this instead:</p>

<ol>
<li>an instance of TestClass is created</li>
<li>setUp runs</li>
<li>test1 runs</li>
<li>tearDown runs</li>
<li>setUp runs</li>
<li>test2 runs</li>
<li>tearDown runs</li>
<li>setUp runs</li>
<li>test3 runs</li>
<li>tearDown runs</li>
</ol>

<p>&#8230;which makes more sense. dpUnit also supports asynchronous setUp and some other things that FlexUnit don&#8217;t have. I&#8217;ve switched myself and I&#8217;m not looking back.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Yevgeny Dorogaykin</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-6811</link>
		<dc:creator>Yevgeny Dorogaykin</dc:creator>
		<pubDate>Tue, 03 Jun 2008 08:55:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-6811</guid>
		<description>&lt;p&gt;Hi
I want to verify some issue which is bothering me very much. As i already have checked if i have for example class with 3 tests: 
public class TestClass extends TestCase
{
 ...
 public function test1():void
 {
 }&lt;/p&gt;

&lt;p&gt;public function test2():void
 {
 }&lt;/p&gt;

&lt;p&gt;public function test3():void
 {
 }
}
we'll always run(means creates instances) this class 3 times for each test? And it doesn't matter if i using function suite( )approach or dynamic look-up approach.&lt;/p&gt;

&lt;p&gt;Is it true?&lt;/p&gt;

&lt;p&gt;I'm asking it because i have class with very long and heavy start-up. And when i testing it i want to perform this init only once. There is no problem with this in NUnit  for example. But i can't figure out how to do it with flexunit.&lt;/p&gt;

&lt;p&gt;Thanks in advance.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi
I want to verify some issue which is bothering me very much. As i already have checked if i have for example class with 3 tests: 
public class TestClass extends TestCase
{
 &#8230;
 public function test1():void
 {
 }</p>

<p>public function test2():void
 {
 }</p>

<p>public function test3():void
 {
 }
}
we&#8217;ll always run(means creates instances) this class 3 times for each test? And it doesn&#8217;t matter if i using function suite( )approach or dynamic look-up approach.</p>

<p>Is it true?</p>

<p>I&#8217;m asking it because i have class with very long and heavy start-up. And when i testing it i want to perform this init only once. There is no problem with this in NUnit  for example. But i can&#8217;t figure out how to do it with flexunit.</p>

<p>Thanks in advance.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Marty Pitt</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-5812</link>
		<dc:creator>Marty Pitt</dc:creator>
		<pubDate>Tue, 25 Mar 2008 15:37:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-5812</guid>
		<description>&lt;p&gt;Hi&lt;/p&gt;

&lt;p&gt;I just found this post, and didn't realize that passing a calss through to the test suite would discover all the test classes.&lt;/p&gt;

&lt;p&gt;I also am not a fan of the testSuite.add(xxx) method -- I went through the pain of this approach for an entire project, and ditched.&lt;/p&gt;

&lt;p&gt;As an alternative, I wrote a custom parser using metadata to allow me to decorate methods with [Test] to generate a test.  I still prefer it over the name method approach.  (Though probably would've have developed it had I known).&lt;/p&gt;

&lt;p&gt;Details on my blog here:
http://martypitt.wordpress.com/2008/03/16/custom-metatags-and-slicker-unit-tests/&lt;/p&gt;

&lt;p&gt;Marty&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi</p>

<p>I just found this post, and didn&#8217;t realize that passing a calss through to the test suite would discover all the test classes.</p>

<p>I also am not a fan of the testSuite.add(xxx) method &#8212; I went through the pain of this approach for an entire project, and ditched.</p>

<p>As an alternative, I wrote a custom parser using metadata to allow me to decorate methods with [Test] to generate a test.  I still prefer it over the name method approach.  (Though probably would&#8217;ve have developed it had I known).</p>

<p>Details on my blog here:
<a href="http://martypitt.wordpress.com/2008/03/16/custom-metatags-and-slicker-unit-tests/" rel="nofollow">http://martypitt.wordpress.com/2008/03/16/custom-metatags-and-slicker-unit-tests/</a></p>

<p>Marty</p>]]></content:encoded>
	</item>
	<item>
		<title>By: FlexUnit - Some useful examples covering unit testing in Flex and Actionscript 3.0 at building blocks</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-5034</link>
		<dc:creator>FlexUnit - Some useful examples covering unit testing in Flex and Actionscript 3.0 at building blocks</dc:creator>
		<pubDate>Mon, 21 Jan 2008 16:33:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-5034</guid>
		<description>&lt;p&gt;[...] Hultberg has some valid critiques of the framework, as well as an alternative approach to the 'Temperature Conversion' example that is supplied with the FlexUnit distribution. I found [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] Hultberg has some valid critiques of the framework, as well as an alternative approach to the &#8216;Temperature Conversion&#8217; example that is supplied with the FlexUnit distribution. I found [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Theo</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-5003</link>
		<dc:creator>Theo</dc:creator>
		<pubDate>Fri, 04 Jan 2008 22:10:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-5003</guid>
		<description>&lt;p&gt;Testing all 192000 possible input values seems like overdoing it.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Testing all 192000 possible input values seems like overdoing it.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Kelvin Luck</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-5002</link>
		<dc:creator>Kelvin Luck</dc:creator>
		<pubDate>Fri, 04 Jan 2008 14:08:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-5002</guid>
		<description>&lt;p&gt;I can see your point from a theoretical point of view but unfortunately I don't think your approach would work in my case...&lt;/p&gt;

&lt;p&gt;It turns out that my defined set of input values ends up in 192000 tests once I'd written a function to get me all the possible combinations... Running an individual test for each combination allows me to see progress while the test runs and doesn't lock up the flash player as each test is run on a different frame...&lt;/p&gt;

&lt;p&gt;I'm not sure what the recommended way of testing a situation like this would be (a complex function which can have 192000 legal combinations of arguments passed in)?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I can see your point from a theoretical point of view but unfortunately I don&#8217;t think your approach would work in my case&#8230;</p>

<p>It turns out that my defined set of input values ends up in 192000 tests once I&#8217;d written a function to get me all the possible combinations&#8230; Running an individual test for each combination allows me to see progress while the test runs and doesn&#8217;t lock up the flash player as each test is run on a different frame&#8230;</p>

<p>I&#8217;m not sure what the recommended way of testing a situation like this would be (a complex function which can have 192000 legal combinations of arguments passed in)?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Theo</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-5001</link>
		<dc:creator>Theo</dc:creator>
		<pubDate>Fri, 04 Jan 2008 12:46:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-5001</guid>
		<description>&lt;p&gt;If I need to know exactly which input value made an assert fail I usually use the message parameter (the first parameter to the assertX methods). Like this:&lt;/p&gt;

&lt;p&gt;(Let y be a dictionary mapping parameter value to expected result)&lt;/p&gt;

&lt;p&gt;for ( var x in y ) {
  var expected = y[x];
  var result = methodToTest(x);&lt;/p&gt;

&lt;p&gt;assertEquals("Test with parameter value '" + x + "' failed", expected, result);
}&lt;/p&gt;

&lt;p&gt;If that fails the message will read something like "Test XXX failed: Test with parameter value 'X' failed, expected &#60;A&#62; but was &#60;B&#62;".&lt;/p&gt;

&lt;p&gt;Tests should be self-contained, you shouldn't use the code that starts the tests to determine which values are tested.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>If I need to know exactly which input value made an assert fail I usually use the message parameter (the first parameter to the assertX methods). Like this:</p>

<p>(Let y be a dictionary mapping parameter value to expected result)</p>

<p>for ( var x in y ) {
  var expected = y[x];
  var result = methodToTest(x);</p>

<p>assertEquals(&#8221;Test with parameter value &#8216;&#8221; + x + &#8220;&#8216; failed&#8221;, expected, result);
}</p>

<p>If that fails the message will read something like &#8220;Test XXX failed: Test with parameter value &#8216;X&#8217; failed, expected &lt;A&gt; but was &lt;B&gt;&#8221;.</p>

<p>Tests should be self-contained, you shouldn&#8217;t use the code that starts the tests to determine which values are tested.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Kelvin Luck</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/#comment-5000</link>
		<dc:creator>Kelvin Luck</dc:creator>
		<pubDate>Fri, 04 Jan 2008 12:33:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-5000</guid>
		<description>&lt;p&gt;I started out using FlexUnit as you suggest but I believe I have just come across a use-case for the other approach.&lt;/p&gt;

&lt;p&gt;Basically I have once complex method that I need to test with a large variety of input values. Rather than creating a different test for each possible input value (a large but defined set) I instead loop over all of the possible input values and create a TestCase for each - passing the values into the constructor. The TestCase subclass only contains one test method which uses all of the values passed into the constructor.&lt;/p&gt;

&lt;p&gt;This allows me to have all of the tests run as individual tests so that I can see which one (if any fails).&lt;/p&gt;

&lt;p&gt;I'm interested to know if you think this is a valid use-case (if I explained it clearly enough).&lt;/p&gt;

&lt;p&gt;Cheers :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I started out using FlexUnit as you suggest but I believe I have just come across a use-case for the other approach.</p>

<p>Basically I have once complex method that I need to test with a large variety of input values. Rather than creating a different test for each possible input value (a large but defined set) I instead loop over all of the possible input values and create a TestCase for each - passing the values into the constructor. The TestCase subclass only contains one test method which uses all of the values passed into the constructor.</p>

<p>This allows me to have all of the tests run as individual tests so that I can see which one (if any fails).</p>

<p>I&#8217;m interested to know if you think this is a valid use-case (if I explained it clearly enough).</p>

<p>Cheers :)</p>]]></content:encoded>
	</item>
</channel>
</rss>
