【发布时间】:2019-03-30 18:29:09
【问题描述】:
我的 api 中有一条路由调用另一台服务器,但我遇到了一个问题,我无法为另一台服务器调用测试、模拟已解析的值。无论我如何处理,单元测试似乎总是调用其他服务器。
let iAgent: PartialMock<InternalAgent>;
beforeEach(() => {
iAgent = {
extend: jest.fn()
};
});
if(iAgent.extend) {
iAgent.extend.mockResolvedValue({});
}
const r = await request.post('/api/v1/webhooks/extend')
.send({
id: 1
});
expect(r.status).toEqual(200);
expect(iAgent.extend).toBeCalledTimes(1);
在我的实际路线中,它每次都会调用它:
await iAgent.extend();
并且由于其他服务器未运行而在此行失败,并且我收到拒绝连接的消息。显然iAgent.extend 函数甚至没有被调用一次,却设法返回了一个拒绝。
所以无论如何,我相信它不应该在我的路由中调用实际函数并跳过它,如果我理解正确,它会在测试中回退到我的解析值,但事实并非如此,我不确定如何继续。
哦,为了清楚 if 检查我的 mockResolvedValue,这只是为了暂时避免在我的配置中进行严格的空检查。但是我已经登录了条件,它确实模拟了值
【问题讨论】:
标签: javascript api mocking jestjs