首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nock: nock.load不像预期的那样工作

Nock: nock.load不像预期的那样工作
EN

Stack Overflow用户
提问于 2021-06-10 12:46:57
回答 1查看 199关注 0票数 1

我正在尝试加载一个JSON文件,其中包含一个带有Nock函数:nock.load(filePath)的模拟响应。奇怪的是,测试失败时出现了错误:

TypeError: nockDefs.forEach不是一个函数

如果我将nock.load调用替换为原始JSON,则测试运行良好。这是我的测试代码:

代码语言:javascript
复制
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。这种行为的原因是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-10 16:09:22

nock.load用于导入记录的Nock响应,而不是加载任意的JSON。

你想要的是.replyWithFile()

代码语言:javascript
复制
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'))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67921415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档