【发布时间】:2018-05-27 16:29:54
【问题描述】:
我正在使用 Nock (https://github.com/node-nock/nock) 模拟一个由我需要在我的应用程序中测试的端点调用的底层服务。在端点的实现中,我多次调用这个底层服务:
我想知道是否可以只模拟其中一个。让我们说这个: http://samehost/specificrsc2/
目前我无法做到这一点。因为我收到这样的错误:
'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)
谢谢!
【问题讨论】:
-
@OP:我面临同样的问题。您找到解决方法了吗?
-
@eol 不,我们必须模拟所有端点,但为了简化任务,我们使用了一个名为 node-replay (github.com/assaf/node-replay) 的框架,它允许您记录来自底层服务的响应.也许这可以帮助你。
标签: node.js integration-testing nock