﻿<?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>Digital Primates&#187; FlexUnit</title>
	<atom:link href="http://www.digitalprimates.net/author/category/flexunit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.digitalprimates.net</link>
	<description>Development and Consulting</description>
	<lastBuildDate>Thu, 06 Jun 2013 18:13:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Wanted: Technical Writers with Free Time and an Altruistic Spirit</title>
		<link>http://www.digitalprimates.net/author/codeslinger/2010/07/08/wanted-technical-writers-with-free-time-and-an-altruistic-spirit/</link>
		<comments>http://www.digitalprimates.net/author/codeslinger/2010/07/08/wanted-technical-writers-with-free-time-and-an-altruistic-spirit/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 13:07:00 +0000</pubDate>
		<dc:creator>codeslinger</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[FlexUnit]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2010/07/08/wanted-technical-writers-with-free-time-and-an-altruistic-spirit/</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. &#8230; <a href="http://www.digitalprimates.net/author/codeslinger/2010/07/08/wanted-technical-writers-with-free-time-and-an-altruistic-spirit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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 href="http://docs.flexunit.org/" target="_blank">docs.flexunit.org</a>
</p>
<p>
Thanks,<br/>
Labriola</br/>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/codeslinger/2010/07/08/wanted-technical-writers-with-free-time-and-an-altruistic-spirit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4.1 Beta 1 Now Available</title>
		<link>http://www.digitalprimates.net/author/codeslinger/2010/06/07/flexunit-41-beta-1-now-available/</link>
		<comments>http://www.digitalprimates.net/author/codeslinger/2010/06/07/flexunit-41-beta-1-now-available/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 13:06:00 +0000</pubDate>
		<dc:creator>codeslinger</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[FlexUnit]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2010/06/07/flexunit-41-beta-1-now-available/</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. &#8230; <a href="http://www.digitalprimates.net/author/codeslinger/2010/06/07/flexunit-41-beta-1-now-available/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![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 beta begins.

You can download the latest bits from the <a href="http://www.flexunit.org/?page_id=14" target="_blank">flexunit.org download site</a>.

Here are a few feature descriptions and bullet points of some of the new features in the FlexUnit 4.1 world.
<h2>Parameterized Testing</h2>
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 &#8216;x&#8217; 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.
<span id="more-361"></span>
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:
<h3>Constructor (JUnit Style):</h3>
<code> [Parameters]
public static function data2():Array {
return [ [ 3, 6 ], [ 4, 8 ], [ 5, 10 ], [ 6, 12 ] ];
}</code>

<code>private var _input:int;
private var _expected:int;</code>

<code>public function TestParameterized( param1:int, param2:int ) {
_input = param1;
_expected = param2;
}</code>

<code>[Test]
public function doubleTest():void {
assertEquals(_expected, _input*2);
}
</code>
<h3>Method (TestNG Style):</h3>
<code> public static function dataThree():Array {
return [ [ 0, 1, 1 ], [ 1, 2, 3 ], [ 2, 4, 6 ] ];
}</code>

<code>[Test(dataProvider="dataThree")]
public function addTwoValuesTest( value1:int, value2:int, result:int ):void {
  assertEquals( value1 + value2, result );
}
</code>

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.

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.

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.
<h2>External Data for Parameterized Testing and Theories</h2>
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.

<code>
public static var dataRetriever1:IExternalDependencyLoader = new ParamDataHelper( "PurelyFakeExample.xml" );
[Parameters(loader="dataRetriever1")]
public static var someData:Array;
</code>

The IExternalDependencyLoader interface works with the Theory and Parameterized test runners to facilitate asynchronous loading of data points before testing begins.


<h2>Rules Implementation</h2>
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.

<code> [Rule]
public var rule1:IMethodRule = new SomeRule();
[Test]
public function test1():void {
}
</code>

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.
<h2>Directory Scanning and Test Loading</h2>
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.

<code>&lt;flexunit workingDir=&quot;&#36;{bin.loc}&quot; toDir=&quot;&#36;{report.loc}&quot; <br/>
&nbsp;haltonfailure=&quot;false&quot; verbose=&quot;true&quot; localTrusted=&quot;true&quot;&gt; <br/>
&nbsp;&nbsp;&lt;testSource dir=&quot;&#36;{main.src.loc}&quot; /&gt; <br/>
&nbsp;&nbsp;&lt;testSource dir=&quot;&#36;{test.src.loc}&quot;&gt; <br/>
&nbsp;&nbsp;&nbsp;&lt;include name=&quot;**/*Test.as&quot; /&gt; <br/>
&nbsp;&nbsp;&lt;/testSource&gt; <br/>
&nbsp;&lt;library dir=&quot;${lib.loc}&quot; /&gt;<br/>
&lt;/flexunit&gt;</code>
<h2>Performance Improvements</h2>
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.
<h2>UIImpersonator for AS or Flex</h2>
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.

<code> var core:FlexUnitCore = new FlexUnitCore();
core.visualDisplayRoot = this;
</code>
<h2>Asynchronous Functionality now Available in Parameterized Testing and Theories</h2>
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.
<h2>Package level assertions</h2>
You may have noticed that throughout these examples, we have simply said

<span style="font-family: monospace;">assertTrue()</span> instead of <span style="font-family: monospace;">Assert.assertTrue()</span>

Package level assertions now exist for all assertion methods, minimizing typing and porting from previous versions of FlexUnit or Fluint.
<h2>Timing information during test run</h2>
Timing information is gathered internal to the framework during test run, allowing for more accurate measurements of test execution time.


Now, go download the latest bits from the <a href="http://www.flexunit.org/?page_id=14" target="_blank">flexunit.org download site</a> and give us some feedback.]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/codeslinger/2010/06/07/flexunit-41-beta-1-now-available/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using FlexUnit 4 with Flash CS5</title>
		<link>http://www.digitalprimates.net/author/excessive-recursion/2010/05/10/using-flexunit-4-with-flash-cs5/</link>
		<comments>http://www.digitalprimates.net/author/excessive-recursion/2010/05/10/using-flexunit-4-with-flash-cs5/#comments</comments>
		<pubDate>Mon, 10 May 2010 22:18:47 +0000</pubDate>
		<dc:creator>excessive-recursion</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe Flash CS]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[FlexUnit]]></category>
		<category><![CDATA[Flash Professiona]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://173.236.48.58/~digit329/excessive-recursion/?p=7</guid>
		<description><![CDATA[After all these years I still love working in the Flash IDE. It is a raw pure form of ActionScript that presents you with a blank canvas to express your creativity. Having said that, our mindless creations need solid testing &#8230; <a href="http://www.digitalprimates.net/author/excessive-recursion/2010/05/10/using-flexunit-4-with-flash-cs5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>After all these years I still love working in the Flash IDE. It is a raw pure form of ActionScript that presents you with a blank canvas to express your creativity. Having said that, our mindless creations need solid testing before being released to the public.  Today I will talk about the most direct way of using Flex Unit 4 with your ActionScript 3: Flash CS Project, by directly adding the Flex Unit SWC to your FLA. This gives full access to the FLA library during the tests. The easiest way to describe this is the FLA library is comprised of Class objects that are not external files, and they need testing too. <span id="more-366"></span>This has been something that has been asked about for some time on the Adobe forums so I thought I would take some time to explain how to accomplish this and the numerous pitfalls associated with it. In the following example I will be using Flash Builder 4 and Flash Professional CS5 although that being said you should be able to integrate with any version of Flash CS that supports AS3 development.  We are working at simplifying this in the future by providing a panel to be used in the Flash IDE but for now to those who have been waiting hopefully this gets you started. Requirements:</p>
<ul>
	<li>Flash Professional CS (3-5)</li>
	<li>Flash Builder 4 or</li>
	<li>Flex Unit 4 source and can compile the ActionScript only version of the Flex Unit 4 SWC.</li>
</ul>
<p><strong>Definitions:</strong> In Flash Builder 4 there is a new project type called a Flash Professional Project.  In Flash Creative Suite there also is something called a Flash Project.  They are not the same thing, and for the sake of clarity I will be referencing these two things as: <em>FB: Flash Project</em> and <em>FCS: Flash Project</em>.  <strong>Flash Builder 4: The Unfortunate Truth</strong> One of the new features in Flash Builder 4 is not only Flex Unit 4 but the ability to a have Flash Professional Project with round trip development support, features and debugging. From a development standpoint that is pretty great for those of you who are not Flex developers and want to use Flash Builder as a AS development tool for our Flash CS project. While I&#8217;m not going to talk about everything that entails, my initial hope was that with this new project type in Flash Builder 4 I could run Flex Unit 4 against the FB4: Flash Project the same way you would run Flex Unit tests against a Flex/AS Project. Unfortunately this is not the case from Flash Builder.  When attempting to launch your Flex Unit tests against a FB4:Flash Projects you will get several errors basically because Flash Builder is not actually compiling your application, Flash CS is, and Flash Builder does not know how to compile the Flex Unit tests into your FB: Flash Professional project. The FB4 IDE is slightly misleading in this regard, as it actually allows you to create and attempt to run the Flex Unit tests against your FB: Flash Project. Until this is supported should probably be disabled in Flash Builder 4 for Flash Professional Projects.  Hopefully the Flash Builder and Flash CS teams can get this ironed out and working in the future.  You can however create a new project that would just be for testing the ActionScript in your Flash CS project. You won&#8217;t be able to test anything that is working with items in the Library, and will have to be mindful of anywhere you are doing Library Linking MovieClip/Code Behind but you could approach your project that way.  <strong>Flash Professional: Our Only Hope (For Now)</strong> In the meantime, if we want to test everything in Flash CS project including using library assets this leaves us with only one option, import the flex unit swc&#8217;s into Flash CS and run the tests from the Flash CS IDE. This is not as pretty of a workflow since it requires a few extra steps and some cleanup. For the time being let start from the top and work through the steps to get Flash CS working with Flex Unit 4. Don&#8217;t forget that at some point you may also need to remove the Flex Unit SWC and make your project normal again prior to deploying your Flash application excluding the tests from your deployment files.  There are three ways of adding the SWC in Flash CS, the first is the old way of adding the necessary SWC to the properties on the FLA. The second is from the projects panel, where you can add SWC to your project there instead of directly on the FLA. The third way is adding the SWC to Flash CS Preferences via : Preferences &gt; ActionScript 3.0 Settings.  In this example I will be added to the FLA.  <strong>Step 1: Add the correct SWC to the FLA or Project properties.</strong> Since Flex Unit 4 can be used for Flex projects and ActionScript 3 projects, there are two Flex Unit 4 SWC&#8217;s that are shipped with Flash Builder 4. We are not working with MXML so we need to make sure to get the ActionScript only Flex Unit 4 SWC. For a standard install on windows, you can find this SWC here:  C:/Program Files/Adobe/Adobe Flash Builder 4/plugins/com.adobe.flexbuilder.flexunit_4.0.0.272416/flexunitframework/libs/version3libs/ASProject/flexunit-core-as3-4.0.0.4-sdk3.5.0.12683.swc  Open up the Publish Settings for your FLA and add the SWC to the ActionScript 3.0 Settings.  <img src="http://blogs.digitalprimates.net/excessiveRecursion/images//image001.png" alt="" /> <strong>Step 2: Retaining MetaData Tags</strong> The next thing we need to do is make sure Flash CS does not strip out the metadata tags that we will need when working with Flex Unit 4. By default, Flash CS will remove MetaData tags at compile time. Currently there is no built in support in Flash CS to add compile time arguments like in Flash Builder. Oddly enough, if you configure the FLA to generate a SWC, it will keep the MetaData tags intact.  On the Publish Settings for the FLA, make sure that &#8220;Export SWC&#8221; is checked.  <strong>Step 3: Start working with Flex Unit 4</strong> Now that we have the Flex Unit SWC and MetaData tags are being retained, we can start working with Flex Unit. To use Flex Unit, we need 4 things:</p>
<ol>
	<li>Flex Unit UI : The HUD for Flex Unit to output our results to.</li>
	<li>UI Listener: The object  that will be relaying information from the FlexUnitCore to the UI</li>
	<li>Initialize the FlexUnitCore</li>
	<li>Create some tests, and execute them.</li>
</ol>
<p><strong>Step 4: The Flex Unit UI</strong> Flash Builder 4 provides a AS3 version user interface displaying the number of tests that passed / failed. Unfortunately, the &#8220;AS3 UI Runner&#8221; included with Flash Builder 4 actually was built using Flex. So if we wanted to use that one, we would need to add the necessary flex SWC&#8217;s to our project as well. Since I do not want the Flex Framework anywhere near my project for someone to accidentally program against, in this example I will opt not to do that.</p>
<ol>
	<li>Create a new Class that extends MovieClip</li>
	<li>Implement the IRunListener interface Location: org.flexunit.runner.IRunListener</li>
	<li>Implement the appropriate methods: testRunStarted, testStarted, testFinished, testFailure, testAssumptionFailure, testIgnored</li>
	<li>Add any UI stuff to look at.</li>
	<li>Example just uses trace statements.</li>
	<li>See example file in the zip: FlexUnitDemoUI.as</li>
</ol>
<p><strong>Step 5: The UIListener</strong> Next we also need a UI Listener to go with our UIRunner, this will be the object delegating events from the core into the Listener. A simple example of this is included in the zip file.  <strong>Step 6: Initialize FlexUnitCore</strong> The last setup item we need to do is initialize the FlexUnitCore, and add a Listener: UIListener, that has a reference to the Flex Unit UI.  <strong>Step 7: Build Tests and Run Them</strong> Everything else is just like how we would do things in Flash Builder with Flex/AS only projects. Build your tests and run them by calling core.run( Test, Suite, etc.);  <strong>Other:</strong> If you&#8217;d like to use the Hamcrest tests, feel free to add this SWC as well.  C:/Program Files/Adobe/Adobe Flash Builder 4/plugins/com.adobe.flexbuilder.flexunit_4.0.0.272416/flexunitframework/libs/version3libs/Common/hamcrest-1.0.2.swc  That wraps things up. Included below is a test project of this. You will need to have Flash Builder 4 installed, and you might need to update the swc path if your install is located in a different location depending on your operating system.  Happy unit testing.  Ben Schmidtke  <a href="http://www.digitalprimates.net/wp-content/uploads/enclosures/FlexUnitDemo.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/excessive-recursion/2010/05/10/using-flexunit-4-with-flash-cs5/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FlexUnit in Flash Builder Bugs plus TDD</title>
		<link>http://www.digitalprimates.net/author/codeslinger/2009/09/13/flexunit-in-flash-builder-bugs-plus-tdd/</link>
		<comments>http://www.digitalprimates.net/author/codeslinger/2009/09/13/flexunit-in-flash-builder-bugs-plus-tdd/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 15:09:00 +0000</pubDate>
		<dc:creator>codeslinger</dc:creator>
				<category><![CDATA[360Flex]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[FlexUnit]]></category>
		<category><![CDATA[Max 2009]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2009/09/13/flexunit-in-flash-builder-bugs-plus-tdd/</guid>
		<description><![CDATA[I just finished my presentation materials for my Test-driven development session at Adobe Max, and I am pretty excited how it turned out. It is a 90-minute BYOL (Bring your own laptop) lab, which is always challenging. Each person showing &#8230; <a href="http://www.digitalprimates.net/author/codeslinger/2009/09/13/flexunit-in-flash-builder-bugs-plus-tdd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
I just finished my presentation materials for my Test-driven development session at <a href="http://max.adobe.com/">Adobe Max</a>, and I am pretty excited how it turned out. It is a 90-minute BYOL (Bring your own laptop) lab, which is always challenging. Each person showing up with a diverse setup and (hopefully) our files installed. 
</p><p>
So, if you are planning to head to Max, and you are interested in TDD, try to attend. I think it will be well worth the effort.
</p><p>
That said, there will also be two sessions at the <a href="http://www.360flex.com/">360|Flex Max unconference</a> where we will be reviewing the <a href="http://opensource.adobe.com/wiki/display/flexunit/FlexUnit">FlexUnit 4 framework</a> from the inside out. The goal here is
to provide initial context for those interested in becoming committers on the project. FlexUnit 4 is a highly functional testing framework, but it is also complex. Until we have the chance to document every corner, this might be your best chance to learn the ins and outs of it.
</p><p>
Finally, working on this session has given me the opportunity to work with the FlexUnit plugin in Flash Builder. I must say I am very pleased with how this is evolving. Nonetheless, there are a few enhancements I would still like. If you are of a like mind, read through the bugs and cast your vote.
</p><p>
<ul>
<li><a href="https://bugs.adobe.com/jira/browse/FB-22832">Auto Refresh of the flex unit compiler application when deleting a test case or (minimally) re-running the wizard</a> <br/> Right now deleting a test case causes a manualy compilation error that needs resolution. I think this could be more elegant.
<li><a href="https://bugs.adobe.com/jira/browse/FB-22830">Uncheck Create Constructor by default in FU4 test case</a> <br/> Just a minor inconvenience. You generally don&#8217;t need constructors in FU4 test cases, so you uncheck a checkbox&#8230; often
<li><a href="https://bugs.adobe.com/jira/browse/FB-22831">Generate Before/After in place of setup/teardown for FU4 testcases</a><br/>Right now the wizards don&#8217;t know how to generate the FU4 equivalent of setUp() and tearDown(). Not a big deal, but I think it&#8217;s low-hanging fruit.
<li><a href="https://bugs.adobe.com/jira/browse/FB-22834">Remember Last Selected Type when creating test cases from the wizard</a><br/>Just a minor inconvenience. You always need to re-select the radio button when using the wizard with FU4.
</ul>
</p>
If you agree, vote away.

Hope to see you at Max,<br/>
Mike]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/codeslinger/2009/09/13/flexunit-in-flash-builder-bugs-plus-tdd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4 and Flex 4 presentations galore</title>
		<link>http://www.digitalprimates.net/author/codeslinger/2009/09/03/flexunit-4-and-flex-4-presentations-galore/</link>
		<comments>http://www.digitalprimates.net/author/codeslinger/2009/09/03/flexunit-4-and-flex-4-presentations-galore/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 19:09:00 +0000</pubDate>
		<dc:creator>codeslinger</dc:creator>
				<category><![CDATA[360Flex]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[DP News]]></category>
		<category><![CDATA[flexcamp]]></category>
		<category><![CDATA[FlexUnit]]></category>
		<category><![CDATA[Max 2009]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2009/09/03/flexunit-4-and-flex-4-presentations-galore/</guid>
		<description><![CDATA[So after a very welcomed summer lull in travel, I am gearing up for the fall speaking season. A good portion of my time this fall will be spent discussing, encouraging the use of, and getting Feedback on the FlexUnit &#8230; <a href="http://www.digitalprimates.net/author/codeslinger/2009/09/03/flexunit-4-and-flex-4-presentations-galore/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
So after a very welcomed summer lull in travel, I am gearing up for the fall speaking season. A good portion of my time this fall will be spent discussing, encouraging the use of, and getting Feedback on the FlexUnit 4 project. The rest will be spent teaching about the early architecture and internals of the future Flex 4 product. 
</p><p>
If you have tried either of these and want to discuss, or if you haven&#8217;t had the time and want to learn more first, please come and support one of the following great events where I will be presenting.
</p><p>
<b>September 5th, Rimini, Italy</b> at <a href="http://www.flashcamp.it/">Flash Camp on the Beach</a>
<ul>
Testing with Flex and Flash Builder</ul>
<b>October 5th &#8211; 7th, Los Angeles, CA</b> at <nobr><a href="http://max.adobe.com/">Adobe Max, Los Angeles, CA</a><br/></nobr>
<ul>
5th &#8211; Test Driven Development with Flash Builder<br/>
5th &#8211; Creating Custom Components in Flex 4<br/>
5th &#8211; Book Signing and Meet the Authors Event<br/>
<br/>
6th &#8211; Creating Custom Components in Flex 4<br/>
6th &#8211; Battle of the Flex Frameworks Panel<br/>
<br/>
7th &#8211; Creating Custom Components in Flex 4- Twice<br/>
<br/>
Also, in the next couple of days we will be announcing the details of a special event on the 6th and 7th in coordination with the <a href="http://www.360flex.com/">360|Max unconference</a>  for individuals interested in becoming contributors to the FlexUnit 4 project.
</ul>
<b>October 15th and 16th in Omaha, NE</b> at <nobr><a href="http://www.heartlanddc.com/omaha/default.aspx">the Heartland Developers Conference</a></nobr>
<ul>
15th &#8211; From Concept to Concrete: Programming a Designer&#8217;s Vision <br/>
16th &#8211; Reanimating Dead Data with Flex <br/>
</ul>
<b>October 17th and 18th in Raleigh, North Carolina</b> at <a href="http://www.cfinnc.com/">CFinNC</a>
<ul>
Next Generation Testing
</ul>
</p><p>
I hope you have the opportunity to participate and engage with the Flex community at some of these community events. 
</p><p>
Cheers,<br/>
Mike <br/>
<br/>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/codeslinger/2009/09/03/flexunit-4-and-flex-4-presentations-galore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4 Beta 2 is finally here (and it likes your CI Server)</title>
		<link>http://www.digitalprimates.net/author/codeslinger/2009/08/24/flexunit-4-beta-2-is-finally-here-and-it-likes-your-ci-server/</link>
		<comments>http://www.digitalprimates.net/author/codeslinger/2009/08/24/flexunit-4-beta-2-is-finally-here-and-it-likes-your-ci-server/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 12:08:00 +0000</pubDate>
		<dc:creator>codeslinger</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[DP News]]></category>
		<category><![CDATA[FlexUnit]]></category>
		<category><![CDATA[Fluint]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2009/08/24/flexunit-4-beta-2-is-finally-here-and-it-likes-your-ci-server/</guid>
		<description><![CDATA[Alright, it has been an insane few months but we are ready. FlexUnit 4 Beta 2 is now available on the adobe open source site. You can download the turnkey project to play with built libraries quickly or follow the &#8230; <a href="http://www.digitalprimates.net/author/codeslinger/2009/08/24/flexunit-4-beta-2-is-finally-here-and-it-likes-your-ci-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
Alright, it has been an insane few months but we are ready. FlexUnit 4 Beta 2 is now available on the <a href="http://opensource.adobe.com/wiki/display/flexunit/Downloads">adobe open source site</a>.  You can download the turnkey project to play with built libraries quickly or follow the directions on the <a href="http://opensource.adobe.com/wiki/display/flexunit/Get+Source+Code">Source page</a> to grab the source yourself.
</p>
<p>
There are a huge number of fixes and enhancements in this version, all of which you can find for yourself on the <a href="http://opensource.adobe.com/wiki/display/flexunit/FlexUnit+4+Beta+2+Release+Notes">release notes page</a> but the largest change of note is the availability of CI tasks and a CI listener to allow easy hooks into the continuous integration system of your choice. A lot of hard work went into building and vetting these out on different platforms but I wanted to call out a few names in particular. 
</p>
<p>
First, thanks to Peter Martin, because all of this was based on his original work for the FlexUnit .9 tasks. Second, thanks to Joe Adkins, Conrad Winchester, Brian LeGros, Xavi Beumala and Simeon Bateman all of who contributed to development, testing and/or generally being good spirits despite inevitable development slow-downs and hiccups. This is beta code, so there are a couple of caveats and to-do items still on the list, so please be sure to check out the README file in the sample project, or <a href="http://opensource.adobe.com/wiki/display/flexunit/CI+ReadMe">read it on the wiki</a>.
</p>
<p>
So, take a few minutes, grab the bits and play around. If you have any questions or comments, in particular around the new CI tasks, <a href="http://forums.adobe.com/community/opensource/flexunit">head over to the FlexUnit forums</a>. If you believe we mutually disagree on the definition of a functional feature, then please log it into <a href="https://bugs.adobe.com/jira/browse/fxu/">the bug database</a>.
</p>
<p>
This is a completely community run project and your help and support are always welcome.
</p>
Cheers,<br/>
Labriola<br/>
<br/>]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/codeslinger/2009/08/24/flexunit-4-beta-2-is-finally-here-and-it-likes-your-ci-server/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4 and Flash Builder 4</title>
		<link>http://www.digitalprimates.net/author/codeslinger/2009/06/03/flexunit-4-and-flash-builder-4/</link>
		<comments>http://www.digitalprimates.net/author/codeslinger/2009/06/03/flexunit-4-and-flash-builder-4/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 16:06:00 +0000</pubDate>
		<dc:creator>codeslinger</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[FlexUnit]]></category>
		<category><![CDATA[Fluint]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2009/06/03/flexunit-4-and-flash-builder-4/</guid>
		<description><![CDATA[So, suppose you are the kind of person who has downloaded the FlexUnit 4 turnkey beta from opensource.adobe.com. Suppose you are also the type of person who downloaded the new Flash Builder 4 beta from labs.adobe.com. Well then perhaps you &#8230; <a href="http://www.digitalprimates.net/author/codeslinger/2009/06/03/flexunit-4-and-flash-builder-4/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[So, suppose you are the kind of person who has downloaded the <a href="http://opensource.adobe.com/wiki/display/flexunit/Downloads">FlexUnit 4 turnkey beta</a> from opensource.adobe.com. Suppose you are also the type of person who downloaded the new <a href="https://www.adobe.com/cfusion/entitlement/index.cfm?e=labs%5Fflashbuilder4">Flash Builder 4 beta</a> from labs.adobe.com.
Well then perhaps you are thinking to yourself, &#8220;Self, I would really like to see the results from my FlexUnit 4 tests right inside of the FlexUnit Result view in Flash Builder. I wonder how I would do that.&#8221;

Well, I would personally suggest you add the following import to your FlexUnit4Turnkey.mxml file:

<code>
import org.flexunit.runner.notification.async.XMLListener;
</code>

And then add the following line before your call to the run method of the FlexUnit 4 core.

<code>
core.addListener( new XMLListener( "FlexUnit4Turnkey" ) );
</code>

Ideally, it will look something like this:

<code>
core = new FlexUnitCore();
core.addListener( new XMLListener( "FlexUnit4Turnkey" ) );
core.run( FlexUnit4Suite, HamcrestSuite, FlexUnitIn360  );
</code>

Where the string &#8220;FlexUnit4Turnkey&#8221; represents the name of the project where this MXML file resides. If you open the FlexUnit Results view in Flash Builder and execute this MXML file, you will see the results in Flash Builder.

Unfortunately, you need to be aware of some of limitations. First, Flash Builder doesn&#8217;t know how to generate these tests yet and will currently fail if you click any of the buttons such as Run All Completed Tests, Run All Failed Tests, etc. We can just give it back information about the success and failure, Flash Builder doesn&#8217;t yet know how to choose, run or specify FlexUnit 4 tests. Also, and perhaps more severely, Flash Builder considers any Ignored tests a pseudo-failure. Truthfully, it just doesn&#8217;t understand what we mean, so, in some cases, it looks like a failure, but in others it doesn&#8217;t.

Right now, FlexUnit 4 beta still also outputs to the console, which means Flash Builder will try to keep switching you over to the console view, but this will be a little cleaner in our (FlexUnit&#8217;s) next beta drop. In either case, it is perhaps a bit of a novelty for the moment, but it demonstrates the power of the listener model that FlexUnit 4 uses. Wait till you see the stuff coming for Continuous Integration <img src='http://www.digitalprimates.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 

Cheers and have fun,

Labriola]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/codeslinger/2009/06/03/flexunit-4-and-flash-builder-4/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>FlexUnit 4 in 360 seconds</title>
		<link>http://www.digitalprimates.net/author/codeslinger/2009/05/03/flexunit-4-in-360-seconds/</link>
		<comments>http://www.digitalprimates.net/author/codeslinger/2009/05/03/flexunit-4-in-360-seconds/#comments</comments>
		<pubDate>Sun, 03 May 2009 17:05:00 +0000</pubDate>
		<dc:creator>codeslinger</dc:creator>
				<category><![CDATA[DP News]]></category>
		<category><![CDATA[FlexUnit]]></category>
		<category><![CDATA[Fluint]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2009/05/03/flexunit-4-in-360-seconds/</guid>
		<description><![CDATA[About a year back I remember reading a blog post called JUnit in 60 seconds. At the time I pondered how great it would be to have these features in Flex. Little did I know that today I would be &#8230; <a href="http://www.digitalprimates.net/author/codeslinger/2009/05/03/flexunit-4-in-360-seconds/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>About a year back I remember reading a blog post called <a href="http://www.cavdar.net/2008/07/21/junit-4-in-60-seconds/">JUnit in 60 seconds</a>. At the time I pondered how great it would be to have these features in Flex. Little did I know that today I would be writing this post introducing the Flex world to FlexUnit 4.</p>
<p>So, first a little background. FlexUnit 4 is the name for an upcoming release of FlexUnit. It represents the best features of the FlexUnit project combined with the best features of the Fluint project. It is built on top of a newly created foundation designed to support the latest techniques used in the JUnit testing community, but written for the specific requirements and needs of the Flash Player. Top all that off with an extensibility layer that encourages developers to create new types of test runners and extensions while simplify the process of integrating the results into IDEs and continuous integration environments, and it should give you an idea why I am excited about this release.</p>
<p>If it sounds interesting to you as well, the public alpha of this upcoming release is now available as a turnkey test project you can <a href="http://www.digitalprimates.net/wp-content/uploads/enclosures/FlexUnit4TurnkeyAlpha_1.0.zip">download from the adobe open source site</a>. I hope you will use it to learn and explore the new features, and to provide feedback about any bugs you find along the way. However, it is an alpha, so locations and names of classes, signatures of methods and even which features are supported are all subject to change before release. It is not be advisable to use this as your production testing system.</p>
<p>Speaking of features, let&#8217;s jump in. There is a bit more content to go through than the original 60 second tutorial, so, I think you will need 4-6 minutes to get through it all. To keep things consistent, many of these examples are adapted right from the JUnit in 60 seconds site referenced above.</p>
<p><span id="more-56"></span></p>
<ol>
	<li><strong>Test Metadata</strong><br /> Test cases are now marked with a piece of metadata named [Test]. Your tests no longer need any special name (prefixed with test, etc.) Also, the need for specific Test and Suite classes disappears. Your classes no longer need to inherit from any framework class. Here are a couple of sample tests. <code> [Test]   public function addition():void {    	Assert.assertEquals(12, simpleMath.add(7, 5));    }     [Test]   public function subtraction():void {    	Assert.assertEquals(9, simpleMath.subtract(12, 3));    } </code> <br /> Because your test classes no longer inherit from a class in the FlexUnit framework, you will notice that the assert functions you used in the past (assertEquals, assertTrue) are now referenced as static functions of the Assert class; more on the new ways of asserting later in this post. <br /><br /></li>
	<li><strong>Before and After</strong><br /> Sometimes you need to setup your test environment (or fixture) for your tests. In the example above, you need to ensure your simpleMath reference exists before the tests are run.  In previous versions of FlexUnit and Fluint you could override a setup() or teardown() method to accomplish this goal. FlexUnit 4 introduces Before and After metadata which accomplishes a similar goal. Any methods marked with Before will be run before each test method. Any methods marked with After will be run after each test method. This also means you can have multiple methods that run before or after the test. <br /><br /> <code> [Before] public function runBeforeEveryTest():void {    	simpleMath = new SimpleMath();    }     [Before] public function alsoRunBeforeEveryTest():void {    	simpleMath1 = new SimpleMath();    }       [After]   public function runAfterEveryTest():void {    	simpleMath = null;    	simpleMath1 = null;    } </code> <br /> If you do choose to use multiple before or after, you can control the order that these methods execute using an order parameter. So, for example [Before(order=1)], [Before(order=2)]. <br /><br /></li>
	<li><strong>BeforeClass and AfterClass</strong><br /> Methods marked with Before and After will run before and after each test method respectively. BeforeClass and AfterClass allow you to define static methods that will run once before and after the entire test class. Like Before and After, you can define multiple methods for BeforeClass and AfterClass and can control the order.  <code> [BeforeClass] public static function runBeforeClass():void {    	// run for one time before all test cases     }       [AfterClass]   public static function runAfterClass():void {    	// run for one time after all test cases     } </code></li>
	<li><strong>Exception Handling</strong><br /> Test metadata can also have an expects parameter. The expects parameter allows you to indicate that a given test is expected to throw an exception. If the test throws the named exception it is considered a success, if it does not, it is considered a failure. This prevents us from having to write tests wrapped in a try block with an empty catch.  <code> [Test(expects="flash.errors.IOError")]   public function doIOError():void {    	//a test which causes an IOError    } </code> Or <br /> <code> [Test(expects="TypeError")]   public function divisionWithException():void {    	simpleMath.divide( 11, 0 ); } </code></li>
	<li><strong>Ignore</strong><br /> Ignore metadata can be added before any test case you want to ignore. You can also add a string which indicates why you are ignoring the test. Unlike commenting out a test, these tests will still appear in the output reminding you to fix and/or complete these methods.  <code> [Ignore("Not Ready to Run")]    [Test]   public function multiplication():void {    	Assert.assertEquals(15, simpleMath.multiply(3, 5));    } </code></li>
	<li><strong>Async</strong><br /> In previous versions of FlexUnit it was difficult to have multiple asynchronous events and to test code that was event driven but not always asynchronous. Fluint provides enhanced asynchronous support including asynchronous setup and teardown, but every test carried the overhead of the asynchronous code to facilitate this feature. FlexUnit 4 allows the developer to specify which tests need asynchronous support using the async parameter. When provided, the async parameter enables the full asynchronous support provided by Fluint for that particular test. When the async parameter is specified you may also specify an optional timeout for the method.  <code> [Before(async,timeout="250")]   public function setMeUp():void {    }  [After(async,timeout="250")]   public function allDone():void {    }  [Test(async,timeout="500")]   public function doSomethingAsynchronous():void {    	//Async.proceedOnEvent( testCase, target, eventName );     	//Async.failOnEvent( testCase, target, eventName );     	//Async.handleEvent( testCase, target, eventName, eventHandler );     	//Async.asyncHandler( testCase, eventHandler );     	//Async.asyncResponder( testCase, responder );  } </code> <br /> In addition to the async parameter, there are several new Async methods, each of which can also take individual timeouts, handlers and passThroughData.  <br /><br /></li>
	<li><strong>Hamcrest</strong><br /> Earlier I alluded to new assertions. Thanks to the <a href="http://github.com/drewbourne/hamcrest-as3/tree/master">hamcrest-as3</a> project we now have the power of Hamcrest assertions. Hamcrest is based on the idea of matchers which match conditions for your assertions. For example: <br /><br /> <code> [Test] public function testGreaterThan():void {   	assertThat( 11, greaterThan(3) ); }  [Test] public function isItInHere():void {   	var someArray:Array = [ 'a', 'b', 'c', 'd', 'e', 'f' ]; 	assertThat( someArray, hasItems("b", "c") ); } </code> <br /> For more information on hamcrest:
<ul>
	<li><a href="http://github.com/drewbourne/hamcrest-as3/tree/master">Hamcrest AS3</a></li>
	<li><a href="http://code.google.com/p/hamcrest/">Hamcrest</a></li>
	<li><a href="http://code.google.com/p/hamcrest/wiki/Tutorial">Hamcrest Tutorial for Java</a></li>
	<li><a href="http://sebastian-bergmann.de/archives/735-Getting-Started-with-Hamcrest.html">Hamcrest Tutorial for PHP</a></li>
</ul>
<br /><br /></li>
	<li><strong>Suites</strong><br /> FlexUnit 4 has a concept of test suites just like FlexUnit and Fluint. Test suites are just a collection of classes that represent tests or even other suites. A suite is defined by the [Suite] metadata. However, in FlexUnit 4, you also need to provide one additional piece of metadata called [RunWith] which instructs the test runner to execute the tests defined below using a specific class. The [RunWith] metadata forms the basis of the extensibility layer which will be discussed shortly. <br /><br /> <code> [Suite] [RunWith("org.flexunit.runners.Suite")]	 public class FlexUnitIn360 { 	public var t1:BasicMathTest; 	public var t2:MyTheory; } </code> <br /> The test cases and any nested test suites, are simply defined as public variables. There is no need to instantiate them or mark them in any other way. FlexUnit&#8217;s test suite code understands how to recursively parse this class and find the tests. <br /><br /></li>
	<li><strong>User Defined Metadata Parameters</strong><br /> It&#8217;s often extremely useful to include additional pieces of information which are relevant to your development process when defining tests. So, for example, you might want to provide a detailed description of what a test is supposed to prove. This description could then be displayed if the test fails. Or perhaps you would like to note that a test relates to a give issue number in your bug tracking system. These custom parameters are stored by the framework when encountered during the test and can be used in reporting the success or failure later. <br /><br /> <code> [Test(description="This one makes sure something works",issueID="12345")] public function checkSomething():void { } </code></li>
	<li><strong>Theories, Datapoints and Assumptions</strong><br /> This is probably the largest single new feature as it introduces a whole new way of testing. A developer can create theories, which are &#8216;insights&#8217; into the way a given test should behave or over a large, potentially infinite set of values. In other words these are tests that take parameters. The parameters are defined in properties, arrays or can be retrieved from functions or other external sources. A complete description of this feature can and will take a lot of documentation, however, if you are up for reading a bit of theory, <a href="http://shareandenjoy.saff.net/tdd-specifications.pdf">this document</a> will introduce the ideas . Here is a quick sample of using these new techniques: <br /><br /> <code> [DataPoints] [ArrayElementType("String")] public static var stringValues:Array = ["one","two","three","four","five"];  [DataPoint] public static var values1:int = 2; [DataPoint] public static var values2:int = 4;  [DataPoints] [ArrayElementType("int")] public static function provideData():Array { 	return [-10, 0, 2, 4, 8, 16 ]; }  [Theory] public function testDivideMultiply( value1:int, value2:int ):void { 	assumeThat( value2, greaterThan( 0 ) ); 	 	var div:Number = simpleMath.divide( value1, value2 ); 	var mul:Number = simpleMath.multiply( div, value2 ); 	 	Assert.assertEquals( mul, value1 ); }		  [Theory] public function testStringIntCombo( value:int, stringValue:String ):void {			 	//call some method and do something  } </code> <br /> In this case, there are datapoints defined by static properties as well as method calls. The framework introspects the datapoints and uses this data combined along with any type specified in the ArrayElementType metadata. This information is used in combination with the theory method signatures to call each theory for each possible combination of parameters. <br /><br /></li>
	<li><strong>RunWith</strong><br /> FlexUnit 4 is nothing more than a set of runners combined to run a complete set of tests. A runner is a class that implements a specific interface and understands how to find, execute and report back information about any tests in a given class. Each time a new class is encountered, FlexUnit 4 works through a list of possible runners and attempts to identify the correct one to execute the tests contained in the class.  <br /> The RunWith metadata allows you to override the default choice made by the framework and specify a different class to act as the runner. This feature allows developers to write entirely new types of runners, with support for new features, which can work directly with the existing framework and report their results back through the same interface. <br /> In the case of the suite, you are instructing the framework to run this class in a specialized runner that simply finds the correct runner for all of the classes it contains. <br /><br /> <code> [RunWith("org.flexunit.runners.Suite")] </code> <br /><br /></li>
	<li><strong>Adapters</strong><br /> Using the flexibility of the multiple runners discussed above, the new FlexUnit 4 framework has legacy runners built in for both FlexUnit 1 and Fluint tests. This means that FlexUnit 4 is completely backwards compatible; all existing FlexUnit and Fluint tests can be run, and even mixed into suites with FlexUnit 4 tests without any code changes. <br /><br /> Further, supplemental runners are in development for FUnit and several other testing projects <br /><br /></li>
	<li><strong>User Interface Facade</strong><br /> Lastly FlexUnit 4 provides a UIComponent testing facade which allows you to add or remove components from the display list. This allows you to accurately test component methods in a real runtime state. This feature creates a foundation for other projects to extend into areas of integration and functional testing without the need for extensive rewrites or modifications. <br /><br /> <code> [Before(async,ui)] public function setUp():void { 	//Create a textInput, add it to the testEnvironment. Wait until it is created, then run tests on it  	textInput = new TextInput(); 	Async.proceedOnEvent( this, textInput, FlexEvent.CREATION_COMPLETE, 200 ); 	UIImpersonator.addChild( textInput ); } </code></li>
</ol>
<p>If you made it this far, I hope you download the alpha and start playing with it immediately. If you have significant time to devote to serious testing and debugging of the framework, contact me and I will be happy to invite you to the ongoing private beta program.</p>
<p>Stay tuned for some exciting news and, if you have the opportunity, be sure to make it <a href="http://www.360flex.com/">360|Flex</a> for my session about the new framework. Plus, you never know, 360 is an exciting place, we may just have more to tell you by that time.</p>
<p>Cheers and enjoy,<br /> Labriola</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/codeslinger/2009/05/03/flexunit-4-in-360-seconds/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Flex Camp 360 NJ</title>
		<link>http://www.digitalprimates.net/author/tapper/2008/10/07/flex-camp-360-nj/</link>
		<comments>http://www.digitalprimates.net/author/tapper/2008/10/07/flex-camp-360-nj/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 16:10:00 +0000</pubDate>
		<dc:creator>tapper</dc:creator>
				<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[flex2]]></category>
		<category><![CDATA[flex3]]></category>
		<category><![CDATA[FlexUnit]]></category>

		<guid isPermaLink="false">http://test.digitalprimates.net/2008/10/07/flex-camp-360-nj/</guid>
		<description><![CDATA[File this under the better late than never&#8230;&#160;On September 26 and 27th, the folks who bring you Flex 360, put on a 2 day &#34;Flex Camp&#34; in New Jersery, which went over extremely well.&#160; I was presenting on Testing with &#8230; <a href="http://www.digitalprimates.net/author/tapper/2008/10/07/flex-camp-360-nj/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>File this under the better late than never&#8230;</p><p>&nbsp;</p><p>On September 26 and 27th, the folks who bring you Flex 360, put on a 2 day &quot;Flex Camp&quot; in New Jersery, which went over extremely well.&nbsp; I was presenting on Testing with Fluint (formerly known as DPUint).&nbsp; Of course, I promised my slides and materials would be up on here before the end of the weekend.&nbsp; Well, realizing its over a week later, I&#39;m finally getting them uploaded now.</p><p>&nbsp;</p><p>So, if you were one of the many asking for those materials, here they are.&nbsp;</p><p><a href="http://files.blog-city.com/files/J05/88593/p/f/testing_with_fluint.pdf">slides</a><br /> <a href="http://files.blog-city.com/files/J05/88593/b/fluinttests.zip">source code</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.digitalprimates.net/author/tapper/2008/10/07/flex-camp-360-nj/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
