我很难在组件集成测试中测试异步功能。输入启动对端点的异步调用,当它返回时,我发送一个 Action 。我正在尝试测试该操作是否发送了正确的数据。
我已经尝试将我的断言放在 wait()
帮助程序中,但是断言在调用(依赖于异步)操作之前被命中。
如何正确编写异步组件集成测试代码?
最佳答案
有两件事未通过测试:
- 首先,永远不要使用
setTimeout
(window.setTimeout
) 来安排一些 future 的 Ember 工作。使用 Ember 的方式来做这件事;我的意思是Ember.run.later
。对于在验收测试中发生在我身上的同样的事情;请看下面question并查看对答案的评论。原因是; Ember 的测试助手确实不能像我们期望的那样处理setTimeout
。 - 你在测试中遇到了问题;在您在测试中编写的操作处理程序中,您需要更改
name
属性而不是返回 promise 。
无论如何请看下面twiddle我已经更新了。一般而言,使用 Ember 进行测试有点痛苦;因为我相信没有适当的综合文档。祝你好运!
关于testing - Ember——组件集成异步测试不会等到返回异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876829/