gpt4 book ai didi

javascript - node.js 单元测试模拟依赖

转载 作者:行者123 更新时间:2023-11-30 00:19:16 24 4
gpt4 key购买 nike

我对使用 proxyquire 有疑问(或关于如何测试以下代码的任何其他建议)

如果我有以下文件要测试:

var path = require('path');

module.exports = function (conf) {
var exported = {};

exported.getIssue = function (issueId, done) {
...

...
};

return exported;
};

如何在使用 proxyquire 模拟“路径”时传入“conf”变量?变量?

如果不使用proxyquire,还有其他方法吗?

最佳答案

您只需将 conf 变量传递给通过 proxyquire 所需的模块/函数。 Proxyquire 有做同样的事情的意思 CommonJs需要东西,但有可能模拟和 stub 某些模块。所以你应该采取同样的行动。

var pathMock = {
someMethod = function() {}
};
var confMock = {
someMethod = function() {}
};
spyOn(pathMock, 'someMethod').and.callThrough();
spyOn(confMock, 'someMethod').and.callThrough();

module = proxyquire('../path/to/module', {
path: pathMock
});

it('do some test', function(done) {
module(conf).getIssue();
expect(pathMock.someMethod).toHaveBeenCalled;
expect(confMock.someMethod).toHaveBeenCalled;
});

关于javascript - node.js 单元测试模拟依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33772990/

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