使用Nock进行模拟,仅模拟同一主机的特定路由

问题描述 投票:0回答:2

我正在使用 Nock ( https://github.com/node-nock/nock ) 来模拟由我需要在应用程序中测试的端点调用的底层服务。在端点的实现中,我像这样多次调用这个底层服务:

我想知道是否可以只模拟其中一个。就说这个吧: http://samehost/specicrsc2/

目前我还无法实现这一目标。因为我收到这样的错误:

'FetchError: request to http://samehost/specificrsc1/ failed, reason: 
 Nock: No match for request {\n  "method": "GET",\n  "url": 
"http://samehost/specificrsc1/",

这就是我嘲笑底层服务的方式:

const mockUnderlyCall = nock('http://samehost');
mockUnderlyCall.get('/samehost/specificrsc1').reply(200, mockData)

我也尝试一下:

const mockUnderlyCall = nock('http://samehost/samehost/specificrsc1');
mockUnderlyCall.get('').reply(200, mockData)

谢谢你!

node.js integration-testing nock
2个回答
4
投票

我想知道是否可以只模拟其中一个

是的,使用

allowUnmocked
选项。

const mockUnderlyCall = nock('http://samehost', {allowUnmocked: true});

注意,这在 nock 的文档中列出。


0
投票

为什么你不能这样做:

 nock('http://samehost')
    .get('/pvi/api/specificrsc3/')
    .reply();

© www.soinside.com 2019 - 2024. All rights reserved.