我正在尝试运行参数化测试...试图像这里解释的那样实现它: http ://docs.flexunit.org/index.php?title=Parameterized_Test_Styles
这是我的测试用例
import org.flexunit.runners.Parameterized;
[RunWith("org.flexunit.runners.Parameterized")]
public class ArrayBasedStackTests
{
[Paremeters]
public static var stackProvider:Array = [new ArrayBasedStack(), new LinkedListBasedStack()] ;
private var _stack:IStack;
public function ArrayBasedStackTests(param:IStack)
{
_stack = param;
}
[Before]
public function setUp():void
{
}
[After]
public function tearDown():void
{
}
[Test ( description = "Checks isEmpty method of the stack. For empty stack", dataProvider="stackProvider" )]
public function isEmptyStackPositiveTest():void
{
var stack:IStack = _stack;
assertEquals( true, stack.isEmpty() );
}
但是此代码会引发以下初始化错误:
错误:自定义运行器类 org.flexunit.runners.Parameterized 应链接到项目并实现 IRunner。此外,它需要有一个构造函数,它要么只接受类,要么接受类和构建器。
需要帮助来修复它
更新
我已经更新了代码,所以它看起来像这样
[RunWith("org.flexunit.runners.Parameterized")]
public class ArrayBasedStackTests
{
private var foo:Parameterized;
[Parameters]
public static function stacks():Array
{
return [ [new ArrayBasedStack()], [new LinkedListBasedStack()] ] ;
}
[Before]
public function setUp():void
{
}
[After]
public function tearDown():void
{
}
[Test ( description = "Checks isEmpty method of the stack. For empty stack", dataProvider="stacks")]
public function isEmptyStackPositiveTest(stack:IStack):void
{
assertEquals( true, _stack.isEmpty() );
}
有用。但结果有点奇怪。我执行了 4 个测试而不是 2 个。(我在数据提供程序中有 2 个项目,所以不明白为什么我有 4 个测试)。
输出