诺克:nock.load 没有按预期工作
Nock: nock.load does not work as expected
我正在尝试加载一个 JSON 文件,其中包含一个带有 Nock 函数的模拟响应:nock.load(filePath)
。奇怪的是,测试失败并出现错误:
TypeError: nockDefs.forEach is not a function
如果我用原始 JSON 替换 nock.load
调用,测试运行正常。这是我的测试代码:
describe('Sample description', function () {
it('sample desc', function () {
this.timeout(0);
nock("https://sample.url.com")
.get('/endpoint')
.reply(200, nock.load('tests/responses/get_response_200.json'));
return api
.getResponse()
.then(res => expect(res).to.be({
first_name: "Ada",
last_name: "Obi"
}
));
})
})
我已验证我的 JSON 文件包含有效的 JSON,我什至尝试使用更简单的 JSON 结构进行试验,但 相同的错误消息 坚持。
我现在使用的是最新版本的nock:13.1.0。这种行为的原因可能是什么?
nock.load
用于导入记录的 Nock 响应,而不是加载任意 JSON.
你要的是.replyWithFile()
:
nock("https://sample.url.com")
.get('/endpoint')
.replyWithFile(200, 'tests/responses/get_response_200.json')
或者,您可以自己加载和解析 JSON,使用 require()
或 JSON.parse(fs.readFileSync('tests/responses/get_response_200.json', 'utf-8'))
。
我正在尝试加载一个 JSON 文件,其中包含一个带有 Nock 函数的模拟响应:nock.load(filePath)
。奇怪的是,测试失败并出现错误:
TypeError: nockDefs.forEach is not a function
如果我用原始 JSON 替换 nock.load
调用,测试运行正常。这是我的测试代码:
describe('Sample description', function () {
it('sample desc', function () {
this.timeout(0);
nock("https://sample.url.com")
.get('/endpoint')
.reply(200, nock.load('tests/responses/get_response_200.json'));
return api
.getResponse()
.then(res => expect(res).to.be({
first_name: "Ada",
last_name: "Obi"
}
));
})
})
我已验证我的 JSON 文件包含有效的 JSON,我什至尝试使用更简单的 JSON 结构进行试验,但 相同的错误消息 坚持。
我现在使用的是最新版本的nock:13.1.0。这种行为的原因可能是什么?
nock.load
用于导入记录的 Nock 响应,而不是加载任意 JSON.
你要的是.replyWithFile()
:
nock("https://sample.url.com")
.get('/endpoint')
.replyWithFile(200, 'tests/responses/get_response_200.json')
或者,您可以自己加载和解析 JSON,使用 require()
或 JSON.parse(fs.readFileSync('tests/responses/get_response_200.json', 'utf-8'))
。