0
我不知道什么是做函数foo单元测试的最佳方法,因为回调传递给功能栏,我写的foo的单元测试也测试功能栏。单元测试函数与回调传递给另一个函数
有什么办法我只能测试foo内部的逻辑吗?在下面的用例中,我只想确保foo函数可以将值增加1,然后将所有内容传递给bar。如何处理价值应该在酒吧单元测试而不是单元测试中进行测试。
function bar(value, callback) {
value = value + 1;
callback(value);
}
function foo(value, callback) {
value = value + 1;
bar(value, callback);
}
//test for function bar
it('should be able to increase value by 1', function (done) {
bar(1, function (value) {
expect(value).to.equal(2);
done();
});
});
//test for function foo
it('should be able to increase value by 2', function (done) {
foo(1, function (value) {
expect(value).to.equal(3);
done();
});
});
示例代码可以重写为您编写的代码,但正如您猜测的,在我的实际使用情况中,它就像是需要嘲笑的db调用。你能否提供一下你如何在我的案例中嘲笑酒吧? – siyang 2014-08-28 03:25:01
@siyang我建议寻找图书馆嘲笑(搜索npm应该是有启发性的)。我从来没有用javascript做过,所以我没有什么实用的东西可以为过去的关键词“模拟”做出贡献。 – 2014-08-28 14:03:57
我用sinon来存根功能,只是想知道别人怎么做。感谢您的帮助! – siyang 2014-08-28 23:32:04