茉莉花.时钟VS西农时钟我的茉莉花怎么了.Clock.useMock() 用法
jasmine.Clock VS sinon.clock what's wrong with my jasmin.Clock.useMock() usage?
我只是尝试用Jasmine在javascript/coffeescript中进行单元测试,非常好。
我一直在尝试使用茉莉花。Clock.Mock() 在时间上前进并触发 setTimeout 回调。
唉,茉莉花。Clock.tick(1001) 似乎没有任何效果!然后我发现了 sinon.js它有自己的时间模拟,使用这个就可以了。我想了解为什么。
这是一个要测试的虚拟jquery插件:
dummy_method = function(callback) {
fire_callback = function() {
callback();
}
setTimeout("fire_callback()", 1000);
}
这是规格的两个版本:
# Working test (spy was called as expected), using sinon FakeTimers
describe "jQuery.fn.countdown", ->
beforeEach () ->
this.clock = sinon.useFakeTimers();
afterEach () ->
this.clock.restore()
it 'should fireup the callback', ->
countdown_callback = jasmine.createSpy('countdown_callback');
dummy_method(countdown_callback)
this.clock.tick(1001)
expect(countdown_callback).toHaveBeenCalled()
# Non-working test (spy is never called), using jasmine Clock Mock
describe "jQuery.fn.countdown", ->
beforeEach () ->
jasmine.Clock.useMock()
it 'should fireup the callback', ->
countdown_callback = jasmine.createSpy('countdown_callback');
dummy_method(countdown_callback)
jasmine.Clock.tick(1001)
expect(countdown_callback).toHaveBeenCalled()
Jasmine 只是尝试调用一个函数,其中 sinon 测试传递的参数是函数还是字符串。如果是字符串,则调用eval
。
茉莉花:
jasmine.getGlobal().setTimeout = function(funcToCall, millis) {
if (jasmine.Clock.installed.setTimeout.apply) {
return jasmine.Clock.installed.setTimeout.apply(this, arguments);
} else {
return jasmine.Clock.installed.setTimeout(funcToCall, millis);
}
};
西农:
if (typeof timer.func == "function") {
timer.func.apply(null, timer.invokeArgs);
} else {
eval(timer.func);
}
所以这将通过茉莉花测试
setTimeout(fire_callback, 1000);
虽然这会失败
setTimeout("fire_callback()", 1000);
相关文章:
- 迷你$provider注入茉莉花和角
- 茉莉花宝石-耙茉莉花:ci dons't运行测试
- 茉莉花节点测试;t正在运行
- JavaScript时钟问题
- Meteor集成测试,在velocity'她的镜子上有茉莉花
- d3用时钟中的两个指针变换原点
- 我可以把茉莉花规格报告器的输出写入文件吗
- 基于实时时钟
- 茉莉花 - 未调用方法
- 为什么我的犀牛书;s的SVG时钟为黑色圆圈
- JavaScript中的足球时钟计数器
- 在同一窗口中添加多个世界时钟
- 世界的时钟并没有滴答作响
- 在测试间谍的上下文中,存根和mock之间有什么区别?(茉莉花)
- AngularJs 控制器中的实时时钟功能
- 使用茉莉花测试木偶视图和车把模板
- 使用茉莉花测试主干关系模型
- javascript/jquery 数字时钟脚本,24 小时格式,带有日期
- 茉莉花.时钟VS西农时钟我的茉莉花怎么了.Clock.useMock() 用法
- 茉莉花时钟滴答;火狐:无法触发Q.delay方法