Ember -- 组件集成异步测试不会等到返回异步调用

Ember -- component integration async tests aren't waiting until async calls are returned

我很难在组件集成测试中测试异步功能。输入启动对端点的异步调用,当它 returns 时,我发送一个操作。我正在尝试测试该操作是否发送了正确的数据。

我已经尝试将我的断言放在 wait() 帮助器中,但是在调用(依赖于异步)操作之前断言被命中。

这是一个显示该问题的小游戏:https://ember-twiddle.com/79f9a80c639b642e538803ac64a1cf9d?openFiles=tests.integration.components.test-comp-test.js%2Ctemplates.components.test-comp.hbs

如何正确编写异步组件集成测试代码?

有两件事没有通过您的测试:

  1. 首先,永远不要利用 setTimeout (window.setTimeout) 来安排与 Ember 的一些未来工作。使用 Ember 的方式;我的意思是 Ember.run.later。对于在验收测试中发生在我身上的同样的事情;请参阅以下 question 并查看对答案的评论。原因是; Ember 的测试助手确实无法像我们预期的那样处理 setTimeout
  2. 你的测试本身有问题;在您在测试中编写的操作处理程序中,您需要更改 name 属性而不是返回承诺。

无论如何请看下面twiddle我已经更新了。通常使用 Ember 进行测试有点痛苦;因为我相信没有适当的综合文档。祝你好运!