我是不熟悉使用mocha和sinon进行单元测试的人,只是为了了解更多信息,我已将一个函数存根返回一些字符串,在我的代码中,我将此函数称为内部函数。我的测试是查看存根返回字符串是否已分配给变量。请查看代码段以了解更多信息
file.specjs
let sinon = require("sinon");
let filejs = require('./file.js');
let expect = require ("chai").expect;
it('should run only the outer function' ,function() {
// I try to stub my function here
sinon.stub(filejs,'test1').callsFake ((someArg) => {
return "stubbed string";
});
// Now I will call my test outer function
filejs.test();
expect(filejs.param).to.equal("stubbed string");
})
let param;
module.exports = {
test,
test1
}
function test () {
module.exports.param = test1();
}
function test1() {
console.log("should not be called);
let data = "some data";
return data;
}
由于我已经对函数test1进行了存根处理,所以我不希望调用此函数,并且将test1的返回值分配给param,并且由于我们伪造了该函数以返回其他字符串,因此我希望将此字符串设置为参数变量。
但是当我运行测试时,看到此错误
AssertionError:预期的“某些数据”等于“存根字符串”
您需要使用创建的存根。它不会修改对象。
// I try to stub my function here
filejs = sinon.stub(filejs,'test1').callsFake ((someArg) => {
return "stubbed string";
});