我面临一个奇怪的FlexUnit错误:
哇...被要求发送另一个 完成,我已经做到了
当测试次数超过27时,似乎会发生错误......? (测试永远不会完成)
测试例子:
[Test]
public function whenDoingThat_expectThatIsTrue():void{
//blabla
assertTrue(...)
}
欢迎任何帮助!
这是一个例子:
core = new FlexUnitCore();
core.addListener(new TraceListener());
core.run(FooTest);
import org.flexunit.asserts.assertTrue;
public class FooTest {
[Test]
public function foo_test_1() : void {
assertTrue(true);
}
[Test]
public function foo_test_2() : void {
assertTrue(true);
}
...
[Test]
public function foo_test_28() : void {
assertTrue(true);
}
//[Test]
public function foo_test_29() : void {
assertTrue(true);
}
}
结果:
foo_test_9 .
foo_test_17 .
foo_test_3 .
foo_test_18 .
foo_test_4 .
foo_test_19 .
foo_test_5 .
foo_test_6 .
foo_test_20 .
foo_test_21 .
foo_test_7 .
foo_test_22 .
foo_test_8 .
foo_test_23 .
foo_test_2 .
foo_test_24 .
foo_test_10 .
foo_test_25 .
foo_test_11 .
foo_test_26 .
foo_test_12 .
foo_test_27 .
foo_test_13 .
foo_test_28 .
foo_test_14 .
foo_test_15 .
foo_test_1 .
foo_test_16 .
Whoa... been asked to send another complete and I already did that
答案 0 :(得分:1)
讽刺这张贴在这里,考虑到实际问题实际上是StackOverflow:
https://bugs.adobe.com/jira/browse/FXU-112
您可以使用错误中提到的解决方法,或者在FlexUnit 4.1 beta中修复此行为,可以在flexunit.org下载页面找到。
4.1的发布版本即将推出。
问题是你的机器足够快,在框架强制它等到下一帧之前得到一个额外的测试。当该堆栈深度变深时,Flash Player会抛出一个Stack Overflow,并且它会在不合适的地方捕获try catch,然后跟踪'Whoa'语句。
在最初的FlexUnit 4.x中,我们使用了一个计数器和一个近似的帧长度,在非常罕见的情况下,它与机器相关联的次数多于测试,可以允许这种情况发生。在4.1中,我们实际上监视帧,因为它们应该永久地消除这个问题。
麦克