0
我试图把一个小例子展示给同事,但不知道这个测试that I've put in a gist有什么问题。这个单元测试异步JavaScript函数(通过Mocha/Sinon)有什么问题?
基本上我想测试做了异步功能,但使用兴农的间谍()功能,以确保它完成:采用摩卡和done()来解决一个测试,依赖于
function asyncHello(name, delay, cb) {
setTimeout(function() {
console.log("running after ", delay);
cb("hello " + name);
}, delay);
}
suite('Mega Suite', function(){
suite("testing async hello", function() {
test('should call the callback', function(done) {
var cb = sinon.spy();
asyncHello("foo", cb);
cb.should.have.been.called();
done();
});
});
});
思想异步函数(setTimeout,在这种情况下)可以工作,但也许有人可以指出我错在哪里。谢谢!
是的,我的部分是愚蠢的错误。感谢您指出了这一点。 :) 关于不使用Sinon的注意事项,但是如果我想窥探一个将进行异步调用的函数,那么使用Sinon的“正确”方法是什么? 我正在考虑像集成测试这样的事情,我想确保一个模块在给定情况下(即缓存未命中,所以去获取一些数据)进行正确的调用(比如说http.get())。但我可能不想在测试中一直打网络。 – virtualandy 2014-08-31 22:12:27