如何查看 nock 是不是匹配请求?

Posted

技术标签:

【中文标题】如何查看 nock 是不是匹配请求?【英文标题】:How to see if nock is matching the request or not?如何查看 nock 是否匹配请求? 【发布时间】:2019-07-23 13:28:54 【问题描述】:

如何查看 nock 是否匹配请求?有没有一种方法可以在控制台上记录有关 nock 是否与发出的请求匹配的信息?

【问题讨论】:

【参考方案1】:

这很简单。 只需将 .log(console.log) 添加到您的 nock 对象!

nock('https://github.com')
.log(console.log)
.get('/')

基本上,nock 会检查它激活的所有拦截器,直到找到与您的请求匹配的内容(如果您有多个 nock 拦截器模拟各种请求)。那么使用.log(console.log) 记录的内容是,

    发出请求的完整网址。 拦截器的网址 true 或 false,取决于比赛场景。 希望这将帮助您解决 nock 的奥秘:)

【讨论】:

当我尝试上面的代码时,我得到了TypeError: (0 , _nock.default)(...).get(...).log is not a function @EdwardD'Souza 调用 log() as nock(...).log()【参考方案2】:

log 函数在新版本的 nock 上不再可用,例如v13.0.0 但您可以将DEBUG 环境变量设置为nock.*,如此处所述https://github.com/nock/nock#debugging 以记录匹配过程的每个步骤。例如:

export DEBUG=nock.* && yarn test

如果您使用 yarn 来运行测试。

【讨论】:

如果您打算来回显示调试输出到隐藏它,我建议您使用以下单个命令:DEBUG=nock.* yarn test(或npm test 或其他)。这样,如果您删除第一部分,调试输出就会消失。

以上是关于如何查看 nock 是不是匹配请求?的主要内容,如果未能解决你的问题,请参考以下文章

React API 测试与 Nock 失败并出现“错误:Nock:请求不匹配”

superagent 和 nock 如何协同工作?

如何使用 Nock 测试请求中的错误?

如何在整个消息中搜索一个单词,将该单词分解为一个数组,然后检查其他数组以查看它是不是匹配?

如何查看数据库中的结果是不是与我在数组中的值匹配

使用 Detox 和 Nock 模拟 API 调用