<?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: 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>
	<lastBuildDate>Sun, 07 Mar 2010 14:29:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Paul Williams &#187; Unit Testing User Interfaces - Introduction</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/comment-page-1/#comment-8058</link>
		<dc:creator>Paul Williams &#187; Unit Testing User Interfaces - Introduction</dc:creator>
		<pubDate>Thu, 31 Dec 2009 15:44:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-8058</guid>
		<description>&lt;p&gt;[...] The lost FlexUnit documentation  [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] The lost FlexUnit documentation  [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: 1ndivisible</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/comment-page-1/#comment-7873</link>
		<dc:creator>1ndivisible</dc:creator>
		<pubDate>Thu, 16 Jul 2009 15:54:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-7873</guid>
		<description>&lt;p&gt;This is true. I never considered it as integration testing, but I suppose that is exactly what it is.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>This is true. I never considered it as integration testing, but I suppose that is exactly what it is.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Theo</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/comment-page-1/#comment-7872</link>
		<dc:creator>Theo</dc:creator>
		<pubDate>Thu, 16 Jul 2009 15:16:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-7872</guid>
		<description>&lt;p&gt;@1ndivisible you are writing an integration test using an unit testing framework, so the fit will not be perfect. the problems you&#039;re having are more down to you not being able to control the situation and run the tests in isolation. To me it sounds more like you&#039;re actually running &lt;em&gt;one&lt;/em&gt; test, even though you&#039;ve split it up into different methods. It&#039;s more or less like having multiple asserts in the same test method, one has to run before the other. The difference is that in your case the tests after a tests that fails still run -- but since one failed you can&#039;t trust the result of the others anyway, so in practice there&#039;s no difference.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@1ndivisible you are writing an integration test using an unit testing framework, so the fit will not be perfect. the problems you&#8217;re having are more down to you not being able to control the situation and run the tests in isolation. To me it sounds more like you&#8217;re actually running <em>one</em> test, even though you&#8217;ve split it up into different methods. It&#8217;s more or less like having multiple asserts in the same test method, one has to run before the other. The difference is that in your case the tests after a tests that fails still run &#8212; but since one failed you can&#8217;t trust the result of the others anyway, so in practice there&#8217;s no difference.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: 1ndivisible</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/comment-page-1/#comment-7871</link>
		<dc:creator>1ndivisible</dc:creator>
		<pubDate>Thu, 16 Jul 2009 12:29:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-7871</guid>
		<description>&lt;p&gt;Hi Theo,&lt;/p&gt;

&lt;p&gt;I think I have a good use-case for ordered tests. I am writing a class that uses SWFAddress. SWFAddress uses all static methods and its SWFAddress.as class is reliant on communication with its js counterpart in the browser. The first time you register an event listener for its CHANGE event, it fires off its INIT event. I need to test interaction with the class and therefore SWFAddress before the INIT event is fired and after it.&lt;/p&gt;

&lt;p&gt;There is absolutely no way to tearDown SWFAddress, and without any way to control the order of the tests, I can&#039;t ensure that one group of tests occur before INIT and one group of tests occur after INIT. In this case, I think the only solution would be control of order.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi Theo,</p>

<p>I think I have a good use-case for ordered tests. I am writing a class that uses SWFAddress. SWFAddress uses all static methods and its SWFAddress.as class is reliant on communication with its js counterpart in the browser. The first time you register an event listener for its CHANGE event, it fires off its INIT event. I need to test interaction with the class and therefore SWFAddress before the INIT event is fired and after it.</p>

<p>There is absolutely no way to tearDown SWFAddress, and without any way to control the order of the tests, I can&#8217;t ensure that one group of tests occur before INIT and one group of tests occur after INIT. In this case, I think the only solution would be control of order.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/comment-page-1/#comment-7866</link>
		<dc:creator>Patrick</dc:creator>
		<pubDate>Mon, 13 Jul 2009 13:18:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-7866</guid>
		<description>&lt;p&gt;Great article. Unfortunately, even if FlexUnit manages to fix all it&#039;s problems in the next release, Flex itself still throws some serious roadblocks in the way of good unit testing. For example here is a quote from the flex 3 livedocs:&lt;/p&gt;

&lt;p&gt;&quot;Variables representing objects, arrays, and functions are compared by reference. Two such variables are equal if they refer to the same object, array, or function. Two separate arrays are never considered equal, even if they have the same number of elements.&quot;&lt;/p&gt;

&lt;p&gt;What that boils down to is that there is no way to do equality tests on Objects or Arrays without writing your own custom equality functions. I&#039;ve tried writing a simple test that compares the data sent from a form to the data that comes back after some server side processing and this limitation has made it pretty much pointless. I would need unit tests for my unit tests and that just doesn&#039;t make sense.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Great article. Unfortunately, even if FlexUnit manages to fix all it&#8217;s problems in the next release, Flex itself still throws some serious roadblocks in the way of good unit testing. For example here is a quote from the flex 3 livedocs:</p>

<p>&#8220;Variables representing objects, arrays, and functions are compared by reference. Two such variables are equal if they refer to the same object, array, or function. Two separate arrays are never considered equal, even if they have the same number of elements.&#8221;</p>

<p>What that boils down to is that there is no way to do equality tests on Objects or Arrays without writing your own custom equality functions. I&#8217;ve tried writing a simple test that compares the data sent from a form to the data that comes back after some server side processing and this limitation has made it pretty much pointless. I would need unit tests for my unit tests and that just doesn&#8217;t make sense.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Theo</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/comment-page-1/#comment-7856</link>
		<dc:creator>Theo</dc:creator>
		<pubDate>Thu, 02 Jul 2009 20:16:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-7856</guid>
		<description>&lt;p&gt;Well, I don&#039;t agree that integration tests should work any different. They too need to run in isolation. Perhaps not isolation from the database, if that&#039;s what you&#039;re testing, but definitely in isolation from each other. If they don&#039;t you have no way of knowing which test actually failed.&lt;/p&gt;

&lt;p&gt;If one test depends on another you have a fragile test suite. Refactor and introduce a setup that puts the system in a state suitable for both tests (or break them apart and have separate setups). If tests absolutely must depend on each other then they should be explicitly written in sequence, relying on the framework running things in alphabetical order seems like inviting trouble. It also makes it less obvious what the tests do and what they actually test. One reason for writing tests (although not the main one) is that they describe how the system works. Depending on tests running in a particular order (which isn&#039;t necessarily obvious) makes the tests less understandable.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Well, I don&#8217;t agree that integration tests should work any different. They too need to run in isolation. Perhaps not isolation from the database, if that&#8217;s what you&#8217;re testing, but definitely in isolation from each other. If they don&#8217;t you have no way of knowing which test actually failed.</p>

<p>If one test depends on another you have a fragile test suite. Refactor and introduce a setup that puts the system in a state suitable for both tests (or break them apart and have separate setups). If tests absolutely must depend on each other then they should be explicitly written in sequence, relying on the framework running things in alphabetical order seems like inviting trouble. It also makes it less obvious what the tests do and what they actually test. One reason for writing tests (although not the main one) is that they describe how the system works. Depending on tests running in a particular order (which isn&#8217;t necessarily obvious) makes the tests less understandable.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: cholm</title>
		<link>http://blog.iconara.net/2007/02/06/flexunit/comment-page-1/#comment-7854</link>
		<dc:creator>cholm</dc:creator>
		<pubDate>Thu, 02 Jul 2009 19:53:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.iconara.net/2007/02/06/flexunit/#comment-7854</guid>
		<description>&lt;p&gt;One case which I believe you may overlook in which running tests in a given order makes sense is when running integration tests against some stateful entity, such as a web services layer that interacts with a database.&lt;/p&gt;

&lt;p&gt;You express rightly, and very well, that unit tests should have no external dependencies and should manage their own state, however unit tests are not the only type of tests written with this, and other, frameworks.  Very nice article, thanks from the community at large for your efforts.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>One case which I believe you may overlook in which running tests in a given order makes sense is when running integration tests against some stateful entity, such as a web services layer that interacts with a database.</p>

<p>You express rightly, and very well, that unit tests should have no external dependencies and should manage their own state, however unit tests are not the only type of tests written with this, and other, frameworks.  Very nice article, thanks from the community at large for your efforts.</p>]]></content:encoded>
	</item>
	<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-page-1/#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-page-1/#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&#039;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&#039;s what I know from Nunit. For me it&#039;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-page-1/#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&#039;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&#039;t have. I&#039;ve switched myself and I&#039;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>
</channel>
</rss>
