我想进行单元测试的JavaScript函数大致如下:
const request = require('request-promise-native');
async function callServer() {
// Prepare parameters
// Call `request` with parameters
// Parse response JSON and return
}
是否有任何方法可以在不实际调用真实服务器的情况下对该功能进行单元测试?我可以使用笑话模拟功能以某种方式覆盖request()
吗?为此,我是否需要修改每个函数以将request
函数作为参数,还是有另一种方法?
答案 0 :(得分:1)
您可以通过jest.mock模拟导入的模块。 https://jestjs.io/docs/en/api#requirerequiremockmodulename
describe('main description', () => {
it('description of test case', () => {
jest.mock('request-promise-native', () => {
return {}; // Return what the request-promise-native supposed to return
});
const result = callServer();
expect(result).toBe({});
});
});