我正在尝试加载一个JSON文件,其中包含一个带有Nock函数:nock.load(filePath)的模拟响应。奇怪的是,测试失败时出现了错误:
TypeError: nockDefs.forEach不是一个函数
如果我将nock.load调用替换为原始JSON,则测试运行良好。这是我的测试代码:
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。这种行为的原因是什么?
发布于 2021-06-10 16:09:22
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'))。
https://stackoverflow.com/questions/67921415
复制相似问题