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

标签 testing ember.js ember-testing

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

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

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

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

最佳答案

有两件事未通过测试:

  1. 首先,永远不要使用 setTimeout (window.setTimeout) 来安排一些 future 的 Ember 工作。使用 Ember 的方式来做这件事;我的意思是 Ember.run.later。对于在验收测试中发生在我身上的同样的事情;请看下面question并查看对答案的评论。原因是; Ember 的测试助手确实不能像我们期望的那样处理 setTimeout
  2. 你在测试中遇到了问题;在您在测试中编写的操作处理程序中,您需要更改 name 属性而不是返回 promise 。

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

关于testing - Ember——组件集成异步测试不会等到返回异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876829/

相关文章:

ember.js - 注册测试助手时如何访问 Ember 数据存储? Ember 3.3

ember.js - 测试时如何从组件中获取属性?

testing - 是否有可能以某种方式在 Jenkins 的 TestLink 中自动创建作业?

testing - 如何使用 Rhino Mocks 和 MSpec 测试抽象类的虚拟属性?

javascript - 如何在Emberjs中调用 `computed`之后的方法

javascript - 试图理解 Ember JS 的 promise

ember.js - 如何为 ember-addon 中定义的组件添加集成测试

java - 为什么我们可以用 Java 语法编写 Groovy 代码?

unit-testing - RPA 中的自动化测试

google-maps - Ember 中 Google map 上的模块化标记