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

时间:2017-05-09 17:59:00

标签: testing ember.js ember-testing

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

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

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

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

1 个答案:

答案 0 :(得分:2)

有两件事情未通过测试:

  1. 首先,永远不要使用setTimeoutwindow.setTimeout)安排将来与Ember合作。利用Ember的方式做到这一点;我的意思是Ember.run.later。对于我在验收测试中发生的同样事情;请参阅以下question并查看有关答案的评论。原因是; Ember的测试助手实际上无法按照我们的预期处理setTimeout
  2. 您在测试中遇到问题;在您在测试中编写的动作处理程序中,您需要更改name属性而不是返回承诺。
  3. 无论如何,请参阅以下twiddle我已更新。一般用Ember测试是一种痛苦;因为我认为没有适当的综合文件。祝你好运!