在诺克的多个请求中更改单个请求的响应

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 颠覆该假设并允许实时通话正常进行,除非您明确地模拟它们。