在测试期间,Ember UI不会触发Ember控制器动作
Ember UI not triggering Ember controller actions during testing
我有一个很有趣的问题。
我们有Rails + Capybara与我们的Ember前端进行集成测试。
我遇到的问题是,当运行我们的:Selenium
动力测试时,有时(这是关键的一点,有时),UI元素将被按下,Ember动作不会开火。
所以,这不是 ajax相关的问题。我没有得到数据错误。不是 Ember错误,不是 js错误,不是 Capybara::ElementNotFound
错误。
正在讨论的UI已经加载,然后Capybara成功地点击了按钮,然后烬动作从未被调用。并不是反应时间太长,只是没有触发。
我知道这一点,因为我正在记录烬行动(console.log()
),可以看到它发生时,它的工作,而不是发生时,它没有。
所以,我的理论是……Ember在设置所有js来处理动作之前已经加载了UI。这可能吗?
您是否尝试过在测试中显式触发运行循环?
我明白了
看起来好像烬模板,因此UI,将加载之前在路由器的setupController
属性的所有方法完成。
我真的不太了解Ember,无法理解它是如何以及为什么这样工作的,但是我能够通过做以下事情来解决这个问题:
-
在
setupController
的所有回调结束时,我将控制器属性设置为true。的控制器。集(setupDone,真的)' -
在该路由的模板中,我将UI封装在一个条件
{{#if setupDone}}
相关文章:
- 从全局函数调用Ember控制器上的方法
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- 如何将Ember.js控制器连接到视图
- Ember:当子控制器同时观察到父控制器触发请求的相同属性时
- Ember访问公共路由/控制器mxiin中的控制器属性
- 如果没有Ember中的控制器,我如何更改查询参数
- Ember.js-自动使动作成为目标控制器
- Ember.js:如果控制器中满足某些条件,则在路由器中重定向
- 更改路由时将 Ember 控制器属性设置为 false
- ember - 控制器操作仅由输入字段调用,而不由按钮调用
- 在 ember 控制器中创建自定义函数
- Ember控制器计算的属性(Object类型)更新不起作用
- 嵌套路由中的Ember控制器
- 在Ember控制器中使用依赖注入字段
- 链接Ember控制器到视图/元素
- 如何在Ember控制器中测试. observers()方法
- 如何在目录中设置ember控制器
- 在测试期间,Ember UI不会触发Ember控制器动作
- Ember控制器依赖解析不能在直接链接上工作
- 渲染到现有模板时的Ember控制器