有办法运行烬吗.用假计时器测试验收测试
Is there a way to run Ember.Testing acceptance tests with fake timers?
我正在EmberJS中的一个项目上工作,该项目有一组验收测试(qUnit with EmberJS helper)。现在,我正试图尽可能地优化这些测试,因为每次运行等待10分钟并不好。
我们的一些测试实际上需要等待一些事情发生:计时器用完,时钟更新需要一分钟,等等。
我尝试使用sinonjs与faketimers,但这似乎搞砸了余烬运行循环和任何其他使用setInterval/setTimeout与应用程序或测试。
我正在寻找一种方法来集成测试与这样的功能。我会考虑以下选项:
- 为烬/烬制作补丁。测试
- 使用另一种假定时器方法(除了sinon)
- 手动导入Date对象,以处理某种非侵入式假计时器
谢谢!
我们对这个问题的特殊解决方案是将常量值从控制器/路由中取出,并将其放入应用的命名空间中,然后在测试时更改它。
App = Em.Application.create({
someTimerLength:2000
});
// if testing mode, change a ton of things
// you could also use a different config hash when creating the app
if(Ember.testing){
Em.set(App,'someTimerLength', 1);
}
引用应用命名空间的随机代码
Ember.run.later(function(){
resolve(['red', 'yellow', 'blue']);
}, App.someTimerLength);
下面是一个丑陋的例子,但展示了我们是如何做到的:http://emberjs.jsbin.com/wipo/41/edit
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- MobileFirst:在客户端运行计时器作业-最佳选项
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 如何禁用窗口.当计时器超时时,打开卸载警报
- 在Nodejs中为许多用户处理计时器
- 如果弹出窗口关闭,Javascript停止/重置计时器
- 如何在隐藏时暂停jquery计时器
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 计时器循环从不运行
- Progressbar计时器,仅在页面刷新时重新加载
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 递归倒计时计时器
- 我正在进行在线测试,一切都完成了.但是我的自动提交计时器不起作用
- 测试计时器应该在页面完全加载到JavaScript后启动
- 有办法运行烬吗.用假计时器测试验收测试
- 禁用计时器的单元测试