如何监视使用JEST编写在函数组件内的未导出函数?
const ProfilePage: NextPage<Props> = ({
const getUser = () => {
return {
name: 'Joker',
}
}
return (
<Box>Hello world</Box>
)
)}
我想监视getUser函数,看看它是否返回{name: 'Joker'}
。我尝试使用酶,但这对我不起作用,因为它不适用于react 18版本。
it('GetUserSpy', () => {
jest.spyOn(ProfilePage.prototype,'getUser') // prototype is undefined because its a function component
});
1条答案
按热度按时间62o28rlo1#
不幸的是,您不能这样做。但是您可以简单地从组件中提取函数并导出它。如果你在函数中不使用任何钩子,这应该不是问题。
还要注意的是,监视的想法并不是检查returnValue。如果您想查看getUser函数返回的内容,您可以在测试中简单地调用它,并使用
expect(result).toBe({name: 'Joker'})
,您还需要导出该函数。如果你想做间谍,这应该工作: