如何查看 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:请求不匹配”