我有一个非常简单的函数,我必须写一个测试,目标是满足覆盖率阈值。
import { lambdaPromise } from '@helpers';
export const main = async event => lambdaPromise(event, findUsers);
lambdaPromise()
函数返回一个Promise。我试着模拟它,然后判断它是否被调用。下面是我得到的结果:
import { main, findUsers } from '../src/lambdas/user/findUsers';
import { lambdaPromise } from '@helpers';
const mockEvent = {
arguments: {
userDataQuery: {
email: 'johndoe@whatever.com'
}
}
};
const mockLambdaPromise = jest.fn();
jest.mock('@helpers', () => ({
lambdaPromise: jest.fn().mockImplementation(() => mockLambdaPromise)
}));
describe('findUsers', () => {
it('should have a main function', async () => {
const mockPromise = main(mockEvent);
expect(mockPromise).toBeInstanceOf(Promise);
expect(mockLambdaPromise).toBeCalledWith(mockEvent, findUsers);
});
});
现在mockLambdaPromise
永远不会被调用。如何解决这个问题?
1条答案
按热度按时间sqxo8psd1#
你的mock返回一个函数,但是你没有调用这个函数。
通过使用spy来模拟解析值,可以降低模拟的复杂性: