node.js - 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 的模块,所以这应该不是问题吗?
任何帮助将不胜感激。
解决方案
我终于设法破解了这个问题,解决方案非常简单:必须在创建任何呼叫之前激活录音。http(s).request
就我而言,它有点模糊,因为我有一个在构造时保存http.request
或保存https.request
在成员变量中的类。事先激活记录器可以解决问题。
推荐阅读
- ruby - 按特定键对 ruby 哈希进行排序
- performance - OCaml 和内存中的自定义类型
- xamarin.forms - Xamarin Forms Android 搜索栏删除下划线
- python - 在 Python 上安装 Cantera 的问题
- typescript - 尝试将扩展运算符与 TypeScript 和 Object.assign 一起使用
- r - 为数据框中的每一行标识具有非零值的第一列
- events - Maximo:在更新相关表时使用脚本更新工单
- excel - Next without For Error, If Else 语句
- google-chrome - Chrome window.open 显示失败 - 网络错误
- c# - 更改场景时如何使用 UnitySingleton 保存 int 值?