首页 > 解决方案 > nockBack 无法记录任何固定装置

问题描述

我不能让nockBack记录任何固定装置,尽管它应该这样做。我的测试代码如下所示:

describe("#searchForProjects", function () {
beforeEach(function () {
  nock.back.setMode("record");
  this.con = getTestConnection(ApiType.Production);
});

it("finds a home project", async function () {
  const { nockDone, context } = await nock.back("search_for_project.json");

  await searchForProjects(this.con, "home:dancermak", {
    idOnly: true,
    exactMatch: true
  }).should.eventually.deep.equal([
    {
      name: "home:dancermak",
      apiUrl: normalizeUrl(ApiType.Production)
    }
  ]);

  nockDone();
});

});

只需运行此特定测试即可生成NetConnectNotAllowedError: Nock: Disallowed net connect for $URL.

我曾尝试nock.restore()在整个测试之前包含一个,这会导致请求通过,但 nock 不会打扰记录任何内容。

底层代码使用的是https来自 nodejs 的模块,所以这应该不是问题吗?

任何帮助将不胜感激。

标签: node.jstypescripttestingnock

解决方案


我终于设法破解了这个问题,解决方案非常简单:必须在创建任何呼叫之前激活录音。http(s).request就我而言,它有点模糊,因为我有一个在构造时保存http.request或保存https.request在成员变量中的类。事先激活记录器可以解决问题。


推荐阅读