Flex 的 单元测试 感觉蛮 麻烦的
不像Java的JUnit4一样,随便加个@Test就可以运行了
一个Flex单元测试需要:
一个TestSuit (测试套件)
一个测试的Application
TestSuit 就像一个容器,把要测试的方法加入到这个Suit里面,然后再在Application中运行
如果用FlexBuilder 就方便一点, Application是自动生成的
可以“新建” -> “TestSuite类” 然后取名就行
结果如下:
package com.emavaj.testexam.testcase { [Suite] [RunWith("org.flexunit.runners.Suite")] public class TestUnkonwSuit { } }
然后加入你要测试的类,成为它的成员变量:
package com.emavaj.testexam.testcase { [Suite] [RunWith("org.flexunit.runners.Suite")] public class TestUnkonwSuit { /**需要测试的类.*/ public var test1:TestUnkonw; } }
当然这个需要测试的类,是有特殊要求的:
在被测试的方法上,需要加入[Test] 标记
[Test] public function run():void { }
当然,如果你想设置启动前或者启动后要处理,那么就需要:
public class TestUnkonw { [BeforeClass] public static function setUpBeforeClass():void { } [Before] public function setUp():void { } [Test] public function run():void { } [After] public function tearDown():void { } [AfterClass] public static function tearDownAfterClass():void { } }
如果你想省事点,那么就是用 FlexUnit的 TestCase类吧
“新建” -> “TestCase类”
哦,别忘了方法中加入断言哦~
然后你可以看到
在工程的src 下自动生成了一个 Application.MXML的文件
我的打开后如下:
<?xml version="1.0" encoding="utf-8"?> <!-- 此文件是自动生成的,不可修改。 --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" xmlns:flexui="flexunit.flexui.*" creationComplete="onCreationComplete()"> <mx:Script> <![CDATA[ import com.emavaj.testexam.testcase.TestUnkonwSuit; public function currentRunTestSuite():Array { var testsToRun:Array = new Array(); testsToRun.push(com.emavaj.testexam.testcase.TestUnkonwSuit); return testsToRun; } private function onCreationComplete():void { testRunner.runWithFlexUnit4Runner(currentRunTestSuite(), "TestExam"); } ]]> </mx:Script> <flexui:FlexUnitTestRunnerUI id="testRunner"> </flexui:FlexUnitTestRunnerUI> </mx:Application>
然后就可以运行了
“Run as FlexUnit 测试”
然后勾选你需要测试的方法...之后就是看断言了