无法让 ASMock 发送事件

发布于 2024-10-09 17:47:04 字数 817 浏览 2 评论 0原文

我找不到我的错误,希望有人能帮助我。 我正在尝试使用 ASMock 对我的 ActionScript 应用程序进行单元测试。 我想执行异步测试,但我没有调度我的模拟函数。 这就是我所做的:

[Test(async,timeout="5000")]
public function testFailedIDResponse() : void {
  var mockRepository : MockRepository = new MockRepository();

// Record

var oMock:ConnectionProcessor  = ConnectionProcessor(mockRepository.createStub(ConnectionProcessor));
oMock.addEventListener("ConnectionProcessor.LOGICALERROR", Async.asyncHandler(this, onWrongID, 5000)); 
SetupResult.forCall(oMock.logigalErrorCode).returnValue("NOT_FOUND");
SetupResult.forEventDispatcher(oMock);
SetupResult.forCall(oMock.load()).dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));
mockRepository.replayAll();
oMock.load();

但事件永远不会到达我的 onWrongID 处理程序。 我的错误在哪里? 非常感谢大家!

I can't find my mistake, hope someone can help me out.
I am trying to unit test my actionscript application using ASMock.
I want to perform an asynchron test, but I don't get my mocked function to dispatch.
this is what I did:

[Test(async,timeout="5000")]
public function testFailedIDResponse() : void {
  var mockRepository : MockRepository = new MockRepository();

// Record

var oMock:ConnectionProcessor  = ConnectionProcessor(mockRepository.createStub(ConnectionProcessor));
oMock.addEventListener("ConnectionProcessor.LOGICALERROR", Async.asyncHandler(this, onWrongID, 5000)); 
SetupResult.forCall(oMock.logigalErrorCode).returnValue("NOT_FOUND");
SetupResult.forEventDispatcher(oMock);
SetupResult.forCall(oMock.load()).dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));
mockRepository.replayAll();
oMock.load();

but the event never arrives at my onWrongID handler.
where is my error?
thanks a lot guys!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人事已非 2024-10-16 17:47:05

您需要将调用移至 addEventListener,直到 replayAll 之后。就目前情况而言,它只是记录您对 addEventListener 的调用。

You need to move your call to addEventListener until after replayAll. As it stands, it's just recording your call to addEventListener.

孤蝉 2024-10-16 17:47:05

您只需从模拟对象中调用dispatchEvent-方法即可。

例如

oMock.dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));

,那么您的测试类/方法/...将能够处理该事件。

或者,如果您希望在可以工作之前在某个地方调用 load 方法,

Expect.call(oMock.load()).dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));

希望有所帮助。
br,

You just have to call the dispatchEvent-method from your mocked object.

e.g.

oMock.dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));

Then your class/method/... under test will be able to handle the event.

or if you expect the load method to be called in somewhere before you could work with

Expect.call(oMock.load()).dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));

hope that helped.
br,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文