<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FlexUnit</title>
	<atom:link href="http://www.flexunit.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.flexunit.org</link>
	<description>Better Flash applications one test at a time.</description>
	<lastBuildDate>Wed, 13 Apr 2011 23:09:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>FlexUnit 4.1 RC2 is released!</title>
		<link>http://www.flexunit.org/?p=91</link>
		<comments>http://www.flexunit.org/?p=91#comments</comments>
		<pubDate>Fri, 24 Dec 2010 17:16:16 +0000</pubDate>
		<dc:creator>Simeon Bateman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flexunit.org/?p=91</guid>
		<description><![CDATA[Happy Holidays Folks! The team has been hard at work and the friuts of those are here as a present for you in the form of FlexUnit 4.1 Release Candidate 2. We really hope that this will be our final release candidate before we go gold in early 2011! Without further ado, head on over [...]]]></description>
			<content:encoded><![CDATA[<p>Happy Holidays Folks!</p>
<p>The team has been hard at work and the friuts of those are here as a present for you in the form of FlexUnit 4.1 Release Candidate 2.  We really hope that this will be our final release candidate before we go gold in early 2011!</p>
<p>Without further ado, head on over to the <a href="http://www.flexunit.org/?page_id=14">downloads</a> section and grab a copy!</p>
<p>Catch the change list after the jump. <span id="more-91"></span></p>
<p>It took us a little longer to get this one out the door than we wanted ( we do have lives you know) but also there is quite a list of <a href="http://flexunit.digitalprimates.net:8080/view/All/job/FlexUnit4-Flex4.1/3/changes">updates and bug fixes</a></p>
<ol>
<li> FIrst pass to update build to produce Sonatype bundles.  Integration with core still outstanding.</li>
<li> Removed extraneous version.properties file.</li>
<li> Updated build for core to produce both as3 and flex artifacts as well as test project to test both.  Updated dependent projects to use as3 version of core only.</li>
<li> Updated to use the 0.90 SWC</li>
<li> Updated main build script to ommit flex/as3 section in final name since it&#8217;s no longer a concern.</li>
<li> Fixed error being thrown by FlexCoverListener by linking CoverageAgent into listener.  Still no luck on closing the CoverageViewer.</li>
<li> Fixed error being thrown by FlexCoverListener by linking CoverageAgent into listener.  Still no luck on closing the CoverageViewer.</li>
<li> Updated main build to provide a hook to bundle sonatype artifacts into a zip for easier distribution.</li>
<li> Updated glob for core libraries to be included in standard distribution zip.</li>
<li> Update version # as to not confuse Nexus for bundle uploads.</li>
<li> Fixed case insensitive dataProvider and order issue.</li>
<li> Fix for issue where IExternalDependencyData interface could not be properly used with Theories</li>
<li> Additional fix to possible condition created when a top level error occurs</li>
<li> Addition of new method to mock for implementation of interface</li>
<li> Added uncaught error handling to all runners</li>
<li> Fixed bug where instances of IExternalDependencyData were evaluated twice. Also fixed crashing bug in FlexUnitCore due to scope conflict</li>
<li> Added theory for external dependency data</li>
<li> Added metadata improvements to 4.1</li>
<li> Updated Theory</li>
<li> Updated build file to include new metadata files</li>
<li> Added metadata code hints into the build file</li>
<li> More helpful error messages when parameterized test initialization fails.</li>
<li> Updates for FlexMonkey</li>
<li> Fix for build issue around unknown error</li>
<li> Fixes for runtime filtering issues with parameterized tests that load external data</li>
<li> Fixed errant trace, comment and extra var in suite</li>
<li> removing old files from turnkey</li>
<li> Updated turnkey to work with the latest libraries</li>
<li> fixing libraries for turnkey</li>
</ol>
<p>So grab the new bits in the downloads section and give them a run for their money.  We wanna make sure this build is ready to go out to the masses.</p>
<p>Thanks, and See you again in the New Year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexunit.org/?feed=rss2&#038;p=91</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4.1 RC1 is out the door</title>
		<link>http://www.flexunit.org/?p=84</link>
		<comments>http://www.flexunit.org/?p=84#comments</comments>
		<pubDate>Fri, 10 Sep 2010 17:56:46 +0000</pubDate>
		<dc:creator>Simeon Bateman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flexunit.org/?p=84</guid>
		<description><![CDATA[This actually happened last week, but I thought I better make a note of it here. Go to the Downloads section to grab the new FlexUnit 4.1 RC1 code!]]></description>
			<content:encoded><![CDATA[<p>This actually happened last week, but I thought I better make a note of it here.</p>
<p>Go to the <a href="http://www.flexunit.org/?page_id=14">Downloads</a> section to grab the new FlexUnit 4.1 RC1 code!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexunit.org/?feed=rss2&#038;p=84</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wanted: Technical Writers with Free Time and an Altruistic Spirit</title>
		<link>http://www.flexunit.org/?p=76</link>
		<comments>http://www.flexunit.org/?p=76#comments</comments>
		<pubDate>Thu, 08 Jul 2010 22:21:52 +0000</pubDate>
		<dc:creator>mlabriola</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flexunit.org/?p=76</guid>
		<description><![CDATA[As many of you know, I am the project lead for FlexUnit 4.x. The technical side of the project is in great shape with new features, releases and tests forthcoming, however, the place we are really lagging is good documentation. Right now the FlexUnit team is quite small and 120% of our time is occupied [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you know, I am the project lead for FlexUnit 4.x. The technical side of the project is in great shape with new features, releases and tests forthcoming, however, the place we are really lagging is good documentation.</p>
<p>Right now the FlexUnit team is quite small and 120% of our time is occupied with development and user support. Unfortunately this means that the best engineered plans for good documentation seem to get farther behind as the days go on.</p>
<p>We are looking for a few people who would be willing to own large chunks of the documentation. We would arrange conference calls as needed with the developers of key sections to talk through approach, technical details and future plans. The goal would be to ensure you have a full understanding and access to anyone you need when writing. Ultimately, it would also give you a few things.</p>
<p>First, you would have unlimited access to learn FlexUnit at a very, very deep level. Second, you could help create a volume of work (I am hoping we can produce both wiki content and eventually a comprehensive PDF book) which will continue to be attributed to you. Third, that attribution plus future recommendations from myself and others on the team and in this industry are guaranteed (and very helpful for future interviews).</p>
<p>Anyone who is seriously interested should leave a comment on this post and I will reach out to you immediately.</p>
<p>If you want to take a look at our current efforts, head over to <a title="docs.flexunit.org" href="http://docs.flexunit.org/" target="_blank">http://docs.flexunit.org/</a></p>
<p>Thanks,</p>
<p>Labriola</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexunit.org/?feed=rss2&#038;p=76</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4.1 Beta 2 Is Here</title>
		<link>http://www.flexunit.org/?p=72</link>
		<comments>http://www.flexunit.org/?p=72#comments</comments>
		<pubDate>Mon, 21 Jun 2010 20:22:32 +0000</pubDate>
		<dc:creator>mlabriola</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flexunit.org/?p=72</guid>
		<description><![CDATA[Today the FlexUnit 4.1 beta continues with the release of beta 2. You can download the latest bits from the flexunit.org download site. Beta 2 resolves a myriad of small bugs and adds minor features  including: Fixed order of parameterized test versus order of data supplied Added additional debug output during headless xvnc execution Improved [...]]]></description>
			<content:encoded><![CDATA[<p>Today the FlexUnit 4.1 beta continues with the release of beta 2.</p>
<p>You can download the latest bits from the <a href="http://www.flexunit.org/?page_id=14" target="_blank">flexunit.org download site</a>.</p>
<p>Beta 2 resolves a myriad of small bugs and adds minor features  including:</p>
<ul>
<li>Fixed order of parameterized test versus order of data supplied</li>
<li>Added additional debug output during headless xvnc execution</li>
<li>Improved formatting of parameterized test names</li>
<li>Added a new interface IExternalDependencyData for simplified loading of external data during Parameterized Tests and Theories</li>
<li>Added comments and resolved many PMD warnings</li>
<li>Additional feedback with mis-configured Rules</li>
<li>Fixed BeforeClass and AfterClass duplicate execution with Parameterized Tests</li>
<li>Fixed a crash using Before and After with Parameterized runner</li>
<li>Updates to the sample CI project and build scripts to simplify builds without PMD</li>
<li>Updated Ant task to support Flex 3 and 4 for Flash and AIR</li>
</ul>
<h3>Improved External Data Loading for Parameterized Testing and Theories</h3>
<p>One of the only API changes in FlexUnit 4.1 beta 2 from beta 1 is the addition of a new interface named IExternalDependencyData. With the addition of this interface, you now have two ways of getting external data into Parameterized Tests and Theories.</p>
<p>Option 1 is to use the IExternalDependencyLoader, which allows a separate class to load the dependency and then assign it to a static variable on the class when complete. This was available in FlexUnit 4.1 beta 1 and is still a great choice in a number of situations where you may have customer setters or other such functionality on the test.</p>
<p><code> public static var dataRetriever1:IExternalDependencyLoader = new ParamDataHelper( "PurelyFakeExample.xml" );<br />
[Parameters(loader="dataRetriever1")]<br />
public static var someData:Array;</code></p>
<p><code> </code></p>
<p><code>public function TestParameterized( param1:int, param2:int ) {<br />
_input = param1;<br />
_expected = param2;<br />
}<br />
</code></p>
<p>The IExternalDependencyLoader interface works with the Theory and Parameterized test runners to facilitate asynchronous loading of data points before testing begins.</p>
<p>Option 2 is IExternalDependencyData which extends IExternalDependencyLoader to simplify the syntax for the average case. It makes the test case more readable by eliminating the extra static variable which isn&#8217;t needed in most cases and allows the test to gather its data directly from the helper class. Here is an example of using this interface in a variety of situations.</p>
<p><code>[Parameters]<br />
public static var dataRetriever:IExternalDependencyData = new ParamDataExt( "someFakeDataPath.stuff" );</code></p>
<p><code> </code></p>
<p><code>public function TestParameterized( param1:int, param2:int ) {<br />
_input = param1;<br />
_expected = param2;<br />
}<br />
</code></p>
<p>or</p>
<p><code> public static var dataTwo:IExternalDependencyData  = new ParamDataExt( "someFakeDataPath.stuff" );</code></p>
<p><code> </code></p>
<p><code>[Test(dataProvider="dataTwo")]<br />
public function timesTwoTest( value:int, result:int ):void {<br />
assertEquals( 2*value, result );<br />
}<br />
</code></p>
<p>As you can see, the syntax really just eliminates the use of an extra static variable in most situations. The original interface is still available and supported but we suspect the IExternalDependencyData will be the right choice in most situations.</p>
<h2><span style="font-weight: normal; font-size: 13px;">Now, get the latest bits from <a href="http://www.flexunit.org/?page_id=14" target="_blank">flexunit.org download site</a> and give us some feedback.</span></h2>
]]></content:encoded>
			<wfw:commentRss>http://www.flexunit.org/?feed=rss2&#038;p=72</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4.1 Beta 1 Now Available</title>
		<link>http://www.flexunit.org/?p=62</link>
		<comments>http://www.flexunit.org/?p=62#comments</comments>
		<pubDate>Mon, 07 Jun 2010 22:29:09 +0000</pubDate>
		<dc:creator>mlabriola</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flexunit.org/?p=62</guid>
		<description><![CDATA[For months now the core FlexUnit team and contributors have been working diligently to move the next release of FlexUnit forward. The 4.0 release was a success but we always knew there were many optimization and enhancement still to come. Today, we are happy to announce some of those are available as the 4.1 public [...]]]></description>
			<content:encoded><![CDATA[<p>For months now the core FlexUnit team and contributors have been working diligently to move the next release of FlexUnit forward. The 4.0 release was a success but we always knew there were many optimization and enhancement still to come. Today, we are happy to announce some of those are available as the 4.1 public beta begins.</p>
<p>You can download the latest bits from the <a href="http://www.flexunit.org/?page_id=14" target="_blank">flexunit.org download site</a>.</p>
<p>Here are a few feature descriptions and bullet points of some of the new features in the FlexUnit 4.1 world.</p>
<h2>Parameterized Testing</h2>
<p>There are times when you need to repeat a test across a series of data points. Imagine a class that does a complex calculation based on input values. It is likely that you would want to test hundreds or thousands of different input values, checking each of their expected outputs to feel comfortable that this class was behaving properly. Or, perhaps you have a whole series of components which implement an interface and you wish to verify that setting the ‘x’ property on each of those objects dispatches and expected event or updates a given property. These are both cases where Parameterized testing can simplify your life.</p>
<p>Parameterized testing in FlexUnit works by allowing you to specify arguments to be passed to a constructor (we call it JUnit style), or arguments which will be passed to a method (TestNG Style). Here is a quick sample of the approach:</p>
<h3>Constructor (JUnit Style):</h3>
<p><code> [Parameters]<br />
public static function data2():Array {<br />
return [ [ 3, 6 ], [ 4, 8 ], [ 5, 10 ], [ 6, 12 ] ];<br />
}</code></p>
<p><code>private var _input:int;<br />
private var _expected:int;</code></p>
<p><code>public function TestParameterized( param1:int, param2:int ) {<br />
_input = param1;<br />
_expected = param2;<br />
}</code></p>
<p><code> </code></p>
<p><code>[Test]<br />
public function doubleTest():void {<br />
assertEquals(_expected, _input*2);<br />
}<br />
</code></p>
<h3>Method (TestNG Style):</h3>
<p><code> public static function dataThree():Array {<br />
return [ [ 0, 1, 1 ], [ 1, 2, 3 ], [ 2, 4, 6 ] ];<br />
}</code></p>
<p><code> </code></p>
<p><code>[Test(dataProvider="dataThree")]<br />
public function addTwoValuesTest( value1:int, value2:int, result:int ):void {<br />
  assertEquals( value1 + value2, result );<br />
}<br />
</code></p>
<p>Parameters are defined by static properties containing arrays of arrays. The framework iterates through the array, calling your methods with the parameters of each inner array. Parameterized testing can be combined with the asynchronous testing for very complex testing.</p>
<p>At first glance, those of you familiar with theories might see a lot of similarities to parameterized testing; they also allow a developer to create methods and a constructor that accept parameters. A theory is different in how the data is defined and in the way a test fails. A theory is akin to a mathematical theory wherein any failure means the whole theory is bad. Further, theories are often reversible. For instance, a valid theory might entail testing a math class by first multiplying two numbers and then dividing the product by the first number. If your code is valid, you should get the second number back. Testing this across a potentially infinite number of values is the real of a theory.</p>
<p>Whereas theories see all of the datapoints as input to a single test, which passes or fails as a whole, parameterized testing expands your set of parameters to individual tests allowing you to understand which cases fail and succeed individually. Parameterized tests are more useful in cases where you have a fixed data set with known specific values which represent a valid outcome.</p>
<h2>External Data for Parameterized Testing and Theories</h2>
<p>Executing tests across large data sets necessarily involves maintaining that data. FlexUnit 4.1 allows the data for Theories and Parameterized tests to be loaded from an external source.</p>
<p><code><br />
public static var dataRetriever1:IExternalDependencyLoader = new ParamDataHelper( "PurelyFakeExample.xml" );<br />
[Parameters(loader="dataRetriever1")]<br />
public static var someData:Array;<br />
</code></p>
<p>The IExternalDependencyLoader interface works with the Theory and Parameterized test runners to facilitate asynchronous loading of data points before testing begins.</p>
<h2>Rules Implementation</h2>
<p>When creating large suites of unit tests, you could find yourself duplicating complex setup code many times. Rules offer the ability to factor this code into a separate class and specify logic that will be invoked before or after each test method call, allowing you to alter how a method is called, perform additional setup or even examine and change the result of a test runner.</p>
<p><code> [Rule]<br />
public var rule1:IMethodRule = new SomeRule();<br />
[Test]<br />
public function test1():void {<br />
}<br />
</code></p>
<p>This feature can be used to create new types of test runners through composition instead of inheritance, allowing more flexibility, less code to maintain and the ability to reuse the rule across many types of runners. The first application of this technology was the auto-creation and verification of Mocks for test cases, however, the next application is a Rule to inject dependencies into cases.</p>
<h2>Directory Scanning and Test Loading</h2>
<p>Using the FlexUnit Ant tasks, you can point FlexUnit at a directory, which it will recursively scan for tests, build a temporary suite and execute on your behalf, removing the need to maintain static lists of tests in many cases.</p>
<p><code> &lt;flexunit workingDir="${bin.loc}" toDir="${report.loc}"<br />
haltonfailure="false" verbose="true" localTrusted="true"&gt;<br />
&lt;testSource dir="${main.src.loc}" /&gt;<br />
&lt;testSource dir="${test.src.loc}"&gt;<br />
&lt;include name="**/*Test.as" /&gt;<br />
&lt;/testSource&gt;<br />
&lt;library dir="${lib.loc}" /&gt;<br />
&lt;/flexunit&gt;</code></p>
<h2>Performance Improvements</h2>
<p>FlexUnit 4.1 now executes FlexUnit 4.x style metadata tests approximately 60% faster than before. New logic that directly monitors the progress of tests throughout the Flash Player frame allows the framework to better utilize the available time, resulting in an additional significant performance boost. Collectively these improvements can halve the execution time on very large suites over previous versions.</p>
<h2>UIImpersonator for AS or Flex</h2>
<p>Flex developers have had the ability to use the UIImpersonator classes to allow components to interact with the display list since version 4.0. Version 4.1 extends that coverage and allows ActionScript only projects the same access. A new property on FlexUnitCore allows developers to indicate the visual display root of the application, thereby allowing this access.</p>
<p><code> var core:FlexUnitCore = new FlexUnitCore();<br />
core.visualDisplayRoot = this;<br />
</code></p>
<h2>Asynchronous Functionality now Available in Parameterized Testing and Theories</h2>
<p>The ability to test asynchronously is imperative in Flash, where operations are often broken across frames. FlexUnit Asynchronous methods are now available in Theories and Parameterized Tests.</p>
<h2>Package level assertions</h2>
<p>You may have noticed that throughout these examples, we have simply said</p>
<p><code>assertTrue() </code>instead of <span style="font-family: monospace;">Assert.assertTrue()</span></p>
<p>Package level assertions now exist for all assertion methods, minimizing typing and porting from previous versions of FlexUnit or Fluint.</p>
<h2>Timing information during test run</h2>
<p>Timing information is gathered internal to the framework during test run, allowing for more accurate measurements of test execution time.</p>
<p>Now, got download the latest bits from <a href="http://www.flexunit.org/?page_id=14" target="_blank">flexunit.org download site</a> and give us some feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexunit.org/?feed=rss2&#038;p=62</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4.0 RC1 Released</title>
		<link>http://www.flexunit.org/?p=54</link>
		<comments>http://www.flexunit.org/?p=54#comments</comments>
		<pubDate>Wed, 16 Dec 2009 16:12:35 +0000</pubDate>
		<dc:creator>Simeon Bateman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flexunit.org/?p=54</guid>
		<description><![CDATA[Its been about a year in the works but FlexUnit 4.0 is nearing the end stages of development.  FlexUnit 4.0 offers significant speed and feature improvements over its predecessors.  If you are interested in finding out more about FlexUnit 4.0 check out the features here.]]></description>
			<content:encoded><![CDATA[<p>Its been about a year in the works but FlexUnit 4.0 is nearing the end stages of development.  FlexUnit 4.0 offers significant speed and feature improvements over its predecessors.  If you are interested in finding out more about FlexUnit 4.0 check out the <a href="http://www.flexunit.org/?page_id=6">features here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexunit.org/?feed=rss2&#038;p=54</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting things together</title>
		<link>http://www.flexunit.org/?p=3</link>
		<comments>http://www.flexunit.org/?p=3#comments</comments>
		<pubDate>Mon, 23 Nov 2009 22:53:51 +0000</pubDate>
		<dc:creator>Simeon Bateman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flexunit.org/?p=3</guid>
		<description><![CDATA[In an effort to organize the project we are setting up several new domains and features. The first of which is this new flexunit.org domain and site. Please stay tuned for updates.]]></description>
			<content:encoded><![CDATA[<p>In an effort to organize the project we are setting up several new domains and features. The first of which is this new flexunit.org domain and site.  Please stay tuned for updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexunit.org/?feed=rss2&#038;p=3</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
