Javascript Jest-如果调用了多个函数,如何使用expect once断言
我已经使用Jest一段时间了,我知道我能够使用倍数Javascript Jest-如果调用了多个函数,如何使用expect once断言,javascript,node.js,jestjs,Javascript,Node.js,Jestjs,我已经使用Jest一段时间了,我知道我能够使用倍数expect来测试每个函数,比如: expect(myFunction).toBeCalled() 因此,我想知道是否有一种方法可以使用单个eexpect方法测试多个函数。比如: const logoutModalProps = { dismissAllModals: mockFunction, logoutUserDeleteState: mockFunction, toggleDrawer: mockFunction, res
expect
来测试每个函数,比如:
expect(myFunction).toBeCalled()代码>
因此,我想知道是否有一种方法可以使用单个eexpect
方法测试多个函数。比如:
const logoutModalProps = {
dismissAllModals: mockFunction,
logoutUserDeleteState: mockFunction,
toggleDrawer: mockFunction,
resetToScene: mockFunction,
popScene: mockFunction,
};
describe('when using handlers for logoutModal', () => {
it('should call handleLogout methods', () => {
handleLogout(logoutModalProps);
expect(...logoutModalProps).toBeCalled();
});
});
注意:在这种情况下,函数handleLogout
调用所有这些方法
有没有办法做到这一点?如果是,请告诉我。如果不是,我应该使用多个预期,还是有更好的方法
感谢您的支持,只需使用多个预期即可。如果单独做这件事很麻烦,你可以用一个循环来完成
it('should call handleLogout methods', () => {
handleLogout(logoutModalProps);
Object.values(logoutModalProps).forEach(mockFn => {
expect(mockFn).toBeCalled();
});
});
您应该使用multiple expects,因为它会告诉您测试失败的确切位置,但是如果您有很多测试在其中循环函数并期望调用它们,我建议您编写一个帮助函数,该函数在您提供的数组中循环,并运行toBeCalled()
或任何其他断言