gpt4 book ai didi

javascript - stub 后会在 Mocha 单元测试中调用嵌套函数吗:AssertionError: expected 'some data' to equal 'stubbed string'

转载 作者:行者123 更新时间:2023-12-02 21:42:08 26 4
gpt4 key购买 nike

我是使用 mocha 和 sinon 进行单元测试的新手,只是为了了解更多信息,我已经 stub 了一个函数来返回一些字符串,在我的代码中我将此函数称为内部函数。我的测试是查看 stub 返回字符串是否分配给变量。请查看代码片段以了解更多信息

文件.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 进行了 stub 处理,所以我不希望调用它,并且从 test1 返回的值被分配给参数,并且由于我们伪造了该函数以返回不同的字符串,因此我希望设置该字符串参数变量。

但是当我运行测试时,我看到这个错误

AssertionError: expected 'some data' to equal 'stubbed string'

最佳答案

尝试以下编辑...

    function test () {
module.exports.param = module.exports.test1();
}

为了获得工作机会而尝试做的事情。您需要 sinon 来修改 module.exports ,并且被测试的代码需要从该对象读取 test1() 。它可能需要嵌套得更深才能修改它......我不知道。我在使用 sinon.stub(require('./something'))

时遇到了麻烦

我想我可以在 repl.it 中使用它 https://repl.it/repls/NegativeEnragedMainframe

关于javascript - stub 后会在 Mocha 单元测试中调用嵌套函数吗:AssertionError: expected 'some data' to equal 'stubbed string' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60344754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com