我正在使用此AsyncHelper。我想创建基本的测试用例,我想从测试方法派发事件(通过Parsley MessageDispatcher),以其他任何方法捕获该事件并将其返回(通过Flex EventDispatcher)。SequenceWaiter无法识别我的事件
这是我的测试案例: package flexUnitTests { import flash.events.ErrorEvent; import flash.events.Event; import flash.events.EventDispatcher;
import flexUnitTests.events.TestEvent;
import flexUnitTests.helpers.AsyncHelper;
import mx.logging.Log;
import mx.logging.LogEventLevel;
import mx.logging.targets.TraceTarget;
import org.flexunit.assertThat;
import org.hamcrest.object.equalTo;
import org.spicefactory.parsley.core.context.Context;
import org.spicefactory.parsley.core.messaging.MessageProcessor;
import org.spicefactory.parsley.dsl.context.ContextBuilder;
import org.spicefactory.parsley.flex.FlexConfig;
import org.spicefactory.parsley.flex.FlexContextBuilder;
public class HelloTest extends AsyncHelper {
[MessageDispatcher]
public var dispatcher:Function;
[Inject]
public var context:Context;
public var eventDispatcher:EventDispatcher;
[Before]
public function initializeContext():void {
// Use ContextBuilder to build context
var context:Context = ContextBuilder.newSetup()
.newBuilder()
.config(FlexConfig.forClass(ParsleyConfig))
.build();
// Add this test case to context
context.addDynamicObject(this);
eventDispatcher = new EventDispatcher();
}
[After]
public function destroyContext():void {
eventDispatcher = null;
}
[MessageHandler(selector='TestEvent.ok')]
public function passItOn(event:TestEvent):void {
eventDispatcher.dispatchEvent(event);
}
[Test(async)]
public function tryIt():void {
dispatcher(new TestEvent(TestEvent.OK));
waitFor(eventDispatcher, TestEvent.OK, 2000);
thenAssert(function(event:TestEvent, data:*):void {
assertThat(event.type, equalTo('TestEvent.ok'));
});
}
}
}
我的事件是这样的: package flexUnitTests.events { import flash.events.Event;
public class TestEvent extends Event
{
static public const OK :String = "TestEvent.ok";
public function TestEvent(type:String)
{
super(type);
}
}
}
我不知道哪里出了问题。如果我在代码中做了跟踪,我可以看到Parsley将我的事件派发到passItOn方法中。并且Flex返回EventDispatcher派发事件。但我不知道为什么SequenceWaiter不能识别我的事件。
我不明白;代码中没有SequenceWaiter。那是什么,为什么你期望它能够识别你的事件? – JeffryHouser
我不明白这个测试有什么意义。你只是在测试欧芹的活动巴士? Jens Halm在任何发布之前已经这样做了。单元测试不应该是关于框架,而是小的,可测试的代码片断。此外,您还要求我们调试(为您)一些由我以前从未见过的随机花花公子在线制作的第三方课程。我说要把它带上去。投票结束。 –
嗨,有没有这个类的testCase ... [链接] http://www.emte.cz/flex/HandlingEventsTest_part2.as 这是我的[链接] http://www.emte.cz/ flex/TestEvent.as 我只是在这里学习如何创建这种类型的测试。之后,我想派遣一些活动给任何一个班级,并尝试抓住其他活动。只有一个事件由Parsley发送,然后由Flex分派。这只是一些例子,如何使用它 - 没有其他意义。 – emte