Created
July 20, 2011 05:36
-
-
Save s9tpepper/1094408 to your computer and use it in GitHub Desktop.
Getting a Stage reference in FlexUnit test for AS3-only project
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is in an ActionScript Project in Flash Builder | |
// Inside FlexUnitApplication.as I added a UI testing environment | |
// In the builder I pass in a reference to the FlexUnitApplication instance | |
package | |
{ | |
import com.project.MyClassTests; | |
import flash.display.Sprite; | |
import flexunit.flexui.FlexUnitTestRunnerUIAS; | |
import org.fluint.uiImpersonation.IVisualEnvironmentBuilder; | |
import org.fluint.uiImpersonation.IVisualTestEnvironment; | |
import org.fluint.uiImpersonation.VisualTestEnvironmentBuilder; | |
public class FlexUnitApplication extends Sprite | |
{ | |
static private var environment:IVisualTestEnvironment; | |
public function FlexUnitApplication() | |
{ | |
onCreationComplete(); | |
} | |
static public function get uiTestEnvironment():IVisualTestEnvironment | |
{ | |
return environment; | |
} | |
private function onCreationComplete():void | |
{ | |
_buildUITestEnvironment(); | |
var testRunner:FlexUnitTestRunnerUIAS=new FlexUnitTestRunnerUIAS(); | |
this.addChild(testRunner); | |
testRunner.runWithFlexUnit4Runner(currentRunTestSuite(), "my_project"); | |
} | |
private function _buildUITestEnvironment():void | |
{ | |
var testEnvironment:IVisualEnvironmentBuilder = VisualTestEnvironmentBuilder.getInstance(this); | |
environment = testEnvironment.buildVisualTestEnvironment(); | |
} | |
public function currentRunTestSuite():Array | |
{ | |
var testsToRun:Array = new Array(); | |
testsToRun.push(com.project.MyClassTests); | |
return testsToRun; | |
} | |
} | |
} | |
// Then in my TestCase [Before] method instead of UIImpersonator I used the | |
// test environment created in FlexUnitApplication | |
Before(async, ui, timeout="1000")] | |
public function setUp():void | |
{ | |
_spriteSubclassUnderTest = new MySpriteSubclass(); | |
Async.proceedOnEvent(this, _spriteSubclassUnderTest, Event.ADDED_TO_STAGE, 1000); | |
FlexUnitApplication.uiTestEnvironment.addChild(_spriteSubclassUnderTest); // Gives .stage ref | |
// UIImpersonator.addChild(_boardNavigator); // Doesn't give stage ref | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment