如何用第三方组件和回调测试EmberJS ?
How can I test EmberJS with third party components and callbacks?
我们正在对应用程序进行集成测试,在使用Stripe JavaScript库时遇到了一个问题。我们有一个包装库的组件,从它开始令牌创建过程到完成该组件被销毁(这反过来又导致测试的其余部分失败)。典型的"修复"是将该方法包装在Ember.run中,但它似乎对它没有影响。让我举个例子。
actions: {
update: function() {
// Starting here this.get('isDestroyed') == false
Stripe.card.createToken({
number: "xx",
cvc: "xx"
}, function() {
// Once we are here this.get('isDestroyed') == true
})
}
}
因为它很早就被破坏了,所以这里没有采取正常的行动。我们怎样才能让烬在等待这个回调完成的同时保持活着?
<标题>更新1我在下面贴了一个答案,但很好奇为什么我不想这样做和/或为什么它不是官方文档的一部分。
<标题>更新2 h1> 个答案我张贴在下面修复测试,但实际的网站本身停止工作(只是坐在那里)。因此,虽然表面上似乎解决了问题,但显然没有完全起作用。 标题>标题>解决方案
似乎如果我手动启动和停止一个运行循环,它确实工作。但这不是文档所说的(尽管这样做很有意义)
actions: {
update: function() {
Ember.run.begin()
Stripe.card.createToken({
number: "xx",
cvc: "xx"
}, function() {
// Perform actions
Ember.run.end()
})
}
}
支持Ember.run的引用->
- http://balinterdi.com/2014/05/09/ember-dot-run-dot-bind.html
- http://emberjs.com/guides/understanding-ember/run-loop/toc_how-do-i-tell-ember-to-start-a-run-loop 什么是Ember RunLoop,它是如何工作的?(特别指出你不应该使用begin/end,因为这是run的功能)
- https://github.com/eoinkelly/ember-get-what-from-where/blob/master/ember-run-loop.md
- http://alexmatchneer.com/blog/2013/01/12/everything-you-never-wanted-to-know-about-the-ember-run-loop/(这似乎与堆栈溢出问题的内容大致相同)
相关文章:
- 模糊事件的Javascript测试
- Emberjs应用程序加载在除Index之外的所有路由上
- 我的单元测试选项是什么
- 测试索引值是否等于某个数字的倍数
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 测试数组中每个项的内容
- 测试Angular Service解决错误回调中的promise
- EmberJS中支持单字母单词模型
- 使用Jest测试React Native应用程序
- 为函数代码编写测试
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何使用JS/nightwatchjs并行运行多个测试
- 使用量角器的当前url单元测试的getTitle
- 茉莉花宝石-耙茉莉花:ci dons't运行测试
- 使用emberjs测试视图控制器
- emberjs ember数据和jasmine测试
- 如何在 EmberJS 验收测试中调用输入和按钮
- 如何用第三方组件和回调测试EmberJS ?
- Emberjs与konacha的集成测试
- 茉莉测试失败,EmberJS需要API