Ember -- 组件集成异步测试不会等到返回异步调用
Ember -- component integration async tests aren't waiting until async calls are returned
我很难在组件集成测试中测试异步功能。输入启动对端点的异步调用,当它 returns 时,我发送一个操作。我正在尝试测试该操作是否发送了正确的数据。
我已经尝试将我的断言放在 wait()
帮助器中,但是在调用(依赖于异步)操作之前断言被命中。
如何正确编写异步组件集成测试代码?
有两件事没有通过您的测试:
- 首先,永远不要利用
setTimeout
(window.setTimeout
) 来安排与 Ember 的一些未来工作。使用 Ember 的方式;我的意思是 Ember.run.later
。对于在验收测试中发生在我身上的同样的事情;请参阅以下 question 并查看对答案的评论。原因是; Ember 的测试助手确实无法像我们预期的那样处理 setTimeout
。
- 你的测试本身有问题;在您在测试中编写的操作处理程序中,您需要更改
name
属性而不是返回承诺。
无论如何请看下面twiddle我已经更新了。通常使用 Ember 进行测试有点痛苦;因为我相信没有适当的综合文档。祝你好运!
我很难在组件集成测试中测试异步功能。输入启动对端点的异步调用,当它 returns 时,我发送一个操作。我正在尝试测试该操作是否发送了正确的数据。
我已经尝试将我的断言放在 wait()
帮助器中,但是在调用(依赖于异步)操作之前断言被命中。
如何正确编写异步组件集成测试代码?
有两件事没有通过您的测试:
- 首先,永远不要利用
setTimeout
(window.setTimeout
) 来安排与 Ember 的一些未来工作。使用 Ember 的方式;我的意思是Ember.run.later
。对于在验收测试中发生在我身上的同样的事情;请参阅以下 question 并查看对答案的评论。原因是; Ember 的测试助手确实无法像我们预期的那样处理setTimeout
。 - 你的测试本身有问题;在您在测试中编写的操作处理程序中,您需要更改
name
属性而不是返回承诺。
无论如何请看下面twiddle我已经更新了。通常使用 Ember 进行测试有点痛苦;因为我相信没有适当的综合文档。祝你好运!