存根后,将在mocha单元测试中调用嵌套函数:AssertionError:预期的“某些数据”等于“存根字符串”

问题描述 投票:0回答:1

我是不熟悉使用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:预期的“某些数据”等于“存根字符串”

javascript node.js unit-testing mocha sinon
1个回答
1
投票

您需要使用创建的存根。它不会修改对象。

// I try to stub my function here
filejs = sinon.stub(filejs,'test1').callsFake ((someArg) => {
  return "stubbed string";
});
© www.soinside.com 2019 - 2024. All rights reserved.