Dud*_*udi 4 node.js sinon nock
问题:我想模拟在同一个 http 调用中得到不同结果的情况。具体来说,第一次失败。在某种程度上,这类似于Sinon 的能力stub.onFirstCall(),stub.onSecondCall()
期望:我预计如果我once在第一次调用和twice第二次调用时使用,我将能够完成上述操作。
nock( some_url )
.post( '/aaaa', bodyFn )
.once()
.reply( 500, resp );
nock( some_url )
.post( '/aaaa', bodyFn )
.twice()
.reply( 200, resp );
Run Code Online (Sandbox Code Playgroud)
Dud*_*udi 12
正确的方法是简单地调用Nock两次。
nock( some_url )
.post( '/aaaa', bodyFn )
.reply( 500, resp );
nock( some_url )
.post( '/aaaa', bodyFn )
.reply( 200, resp );
Run Code Online (Sandbox Code Playgroud)
Nock 的工作方式是每次调用都会为some_url. 实际上第一次调用some_url会清除第一个拦截器等等。
如文档中所述:
当您为 URL 设置拦截器并使用该拦截器时,它将从拦截器列表中删除。这意味着您可以拦截对同一 URL 的 2 个或更多调用,并在每个调用上返回不同的内容。这也意味着您必须为每个将要收到的请求设置一个拦截器,否则 nock 将抛出错误,因为该 URL 不存在于拦截器列表中。如果您不希望拦截器在使用时被删除,您可以使用 .persist() 方法。
| 归档时间: |
|
| 查看次数: |
3446 次 |
| 最近记录: |