我有一个以以下方式需要的JSON文件:
const things = require('./path/to/things);
我想将此文件存入沙箱中,以便它始终返回给定的灯具。
const fixture = {
fake: "things"
}
const sandbox = sinon.createSandbox();
beforeEach(() => {
sandbox.stub(things).returns(fixture);
});
afterEach(() => {
sandbox.restore();
});
这导致错误returns is not a function
。我不确定如何使用沙箱对JSON进行存根。谁能帮我吗?
答案 0 :(得分:1)
您只能存根方法调用。在这种情况下,呼叫为boolean
。我认为您有两种选择:
将require函数存根。
ConfigParser
以下是与上述内容的关联链接:https://repl.it/repls/PessimisticSubtleHexagon
使您的受测系统依赖于Sub test()
rng = ActiveSheet.Range("D7:D23")
For Each cl In rng
' do something with this row
Next cl
End Sub
并进行注入。这样,您就可以将要测试的逻辑与import语句分离。
答案 1 :(得分:0)
另一种方法是使用proxyquire允许require
语句返回模拟json。
// noCallThru() is used to prevent call to the real JSON
// @see https://github.com/thlorenz/proxyquire#preventing-call-thru-to-original-dependency
const proxyquire = require('proxyquire').noCallThru();
const fixture = {
fake: "things"
}
const src = proxyquire('./source-file', { './path/to/things': fixture });
beforeEach(() => {
// empty
});
afterEach(() => {
// empty
});
希望有帮助