在诺克的多个请求中更改单个请求的响应
change the response for single request among multiple request in nock
我已经使用 express 并尝试创建一个 API 用于测试我使用了 nock 所以我发出了一个 get 请求,我不想在之后更改其响应我想做 put 请求并想要更改该部分的响应,但是当我尝试这样做时,我在第一次获取请求时遇到错误,我不想更改。我收到错误 Error: Nock: No match for request
nock(baseURI + '/' + imp.http.relativeURI , { 'encodedQueryParams': true })
.put('/' +imp.file.fileName)
.reply(422,
'<response><errormessage>some error message</errormessage></response>',
[ 'Content-Type', 'application/xml; charset=UTF-8' ])
模拟第二个请求时需要使用 allowUnmocked
标志。
https://github.com/nock/nock#allow-unmocked-requests-on-a-mocked-hostname
nock(baseURI + '/' + imp.http.relativeURI , { allowUnmocked: true, 'encodedQueryParams': true })
.put('/' +imp.file.fileName)
.reply(422,
'<response><errormessage>some error message</errormessage></response>',
[ 'Content-Type', 'application/xml; charset=UTF-8' ])
这个位:nock(baseURI + '/' + imp.http.relativeURI)
基本上是在告诉 Nock 你正在测试这个端点,默认情况下它假设你只期望明确模拟到那个端点的调用。 allowUnmocked
颠覆该假设并允许实时通话正常进行,除非您明确地模拟它们。
我已经使用 express 并尝试创建一个 API 用于测试我使用了 nock 所以我发出了一个 get 请求,我不想在之后更改其响应我想做 put 请求并想要更改该部分的响应,但是当我尝试这样做时,我在第一次获取请求时遇到错误,我不想更改。我收到错误 Error: Nock: No match for request
nock(baseURI + '/' + imp.http.relativeURI , { 'encodedQueryParams': true })
.put('/' +imp.file.fileName)
.reply(422,
'<response><errormessage>some error message</errormessage></response>',
[ 'Content-Type', 'application/xml; charset=UTF-8' ])
模拟第二个请求时需要使用 allowUnmocked
标志。
https://github.com/nock/nock#allow-unmocked-requests-on-a-mocked-hostname
nock(baseURI + '/' + imp.http.relativeURI , { allowUnmocked: true, 'encodedQueryParams': true })
.put('/' +imp.file.fileName)
.reply(422,
'<response><errormessage>some error message</errormessage></response>',
[ 'Content-Type', 'application/xml; charset=UTF-8' ])
这个位:nock(baseURI + '/' + imp.http.relativeURI)
基本上是在告诉 Nock 你正在测试这个端点,默认情况下它假设你只期望明确模拟到那个端点的调用。 allowUnmocked
颠覆该假设并允许实时通话正常进行,除非您明确地模拟它们。