FlexUnit4 使用方法

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 测试”

然后勾选你需要测试的方法...之后就是看断言了

 

你可能感兴趣的:(xml,单元测试,Flex,Adobe)