我尝试了几种方法来匹配url的特定模式:
https://app.launchdarkly.com/sdk/goals/123123123
因此,由于某种原因,123123123将始终是changing.also,每次在另一个GET调用之外进行OPTION调用。不知道为什么,这可能是另一个故事..。
nock返回错误,如:
Error: Error: Nock: No match for request {
"method": "OPTIONS",
"url": "https://app.launchdarkly.com/sdk/goals/123123123",
"headers": {
"origin": "http://localhost",
"access-control-request-method": "GET",
"access-control-request-headers": "X-LaunchDarkly-User-Agent",
"user-agent": "Mozilla/5.0 (darwin) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/16.5.3",
"host": "app.launchdarkly.com",
"content-length": 0
}
}如果我这样做,nock就不会识别该模式(请注意,我复制的模式与GET相同)
nock('https://app.launchdarkly.com')
.persist()
.defaultReplyHeaders({
'access-control-allow-origin': '*',
'access-control-allow-headers': '*',
'access-control-allow-credentials': 'true',
})
.options('/sdk/goals.*$/')
.reply(200, mockLDExperiments);或
nock('https://app.launchdarkly.com')
.persist()
.defaultReplyHeaders({
'access-control-allow-origin': '*',
'access-control-allow-headers': '*',
'access-control-allow-credentials': 'true',
})
.options('/sdk/goals/**/*')
.reply(200, mockLDExperiments);或
nock('https://app.launchdarkly.com')
.persist()
.defaultReplyHeaders({
'access-control-allow-origin': '*',
'access-control-allow-headers': '*',
'access-control-allow-credentials': 'true',
})
.options('/sdk/goals')
.reply(200, mockLDExperiments);是否知道如何编写正确的路径匹配器,这样我就可以让nock获得这个段场景了?
发布于 2022-02-09 16:33:52
Nock支持Regex路径匹配。但是,如果提供字符串,Nock只做精确的匹配,那么似乎您正在尝试与globs类似的东西。文档
就你的情况来说,这样的事情应该能让你走。
nock('https://app.launchdarkly.com')
...
.options(/^\/sdk\/goals\//)
...https://stackoverflow.com/questions/71035635
复制相似问题