【发布时间】:2013-12-19 09:22:01
【问题描述】:
在单元测试中,我想验证 SUT 是否使用特定参数调用 require。基本上我的 SUT 是一个具有以下实现的小模块:
module.exports = function () {
require('foo');
};
我现在想写一个这样的测试:
var sut = require('./sut');
it('requires foo.', function () {
sut();
expect( ??? );
});
所以问题是:如何验证是否使用正确的参数调用了require?我尝试使用 Sinon.js 间谍:
var spy = sinon.spy(require);
sut();
expect(spy.callCount).to.be.equal(1);
expect(spy.calledWithExactly('foo')).to.be(true);
require.restore();
但这不起作用。当我运行测试时,Mocha 告诉我:
错误:预期 0 等于 1
我做错了什么,我该如何解决?
PS:我不需要使用 Sinon.js,所以如果另一个模块更适合我的情况,其他一切都很好。
【问题讨论】:
标签: javascript node.js unit-testing mocha.js sinon