gpt4 book ai didi

javascript - 使用 SinonJS stub (带重新布线)

转载 作者:搜寻专家 更新时间:2023-10-31 23:37:34 25 4
gpt4 key购买 nike

我有一个函数:

var publish = function(a, b, c) {
main = a + getWriterName(b,c);
}

getWriterName 是另一个函数:

var getWriterName = function(b,c) {
return 'Hello World';
}

我想测试“发布”功能,但我不想在测试“发布”时运行“getWriterName”功能。我觉得我 stub getWriterName 函数,因为我不想每次测试“发布”时都运行它,但我该怎么做呢?我做了类似的事情:

var sandbox = sinon.sandbox.create();
sandbox.stub(getWriterName).returns('done');

但这给了我一个错误

TypeError: Attempted to wrap undefined property undefined as function

如果我在写入路径中,我的 stub 有什么问题?

编辑:我正在使用 rewire,所以想要使用 rewire 的解决方案

最佳答案

这就是如何将 Sinon 与 Rewire 一起用于 stub 函数。如果 stub 函数是私有(private)的,那么 Rewire 在这种情况下特别有用。

it('getWriteName always returns "Hello World"', function() {      
var stub = sandbox.stub();
stub.returns('Hello World');
var unset = log.__set__('getWriterName', stub);

// your test and expectations here

unset();
// it's always good to restore the previous state
});

关于javascript - 使用 SinonJS stub (带重新布线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38273619/

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