美好的一天。 我正在编写一些测试代码,但我不太确定如何检查 pushRoute 函数是否真的将我发送到我想要的页面。
这是组件的编辑代码和我要执行的测试。
组件:
redirectToRoute= () => {
this.props.pushRoute('/some/route')
}
<SomeComponent
title="Some Title"
value={value}
onClick={() => this.redirectToRoute()}
/>
测试:
it('Should redirect to route', () => {
const pushRoute = jest.fn();
const wrapper = setup({ pushRoute });
wrapper.instance().redirectToRoute();
expect(pushRoute).toHaveBeenCalledTimes(1);
});
在这里我可以测试是否已调用 onClick,但我现在不知道如何检查它是否重定向到我想要的路由。
最佳答案
您还可以检查是否使用预期路线调用了 pushRoute
:
it('Should redirect to route', () => {
const pushRoute = jest.fn();
const wrapper = setup({ pushRoute });
wrapper.instance().redirectToRoute();
expect(pushRoute).toHaveBeenCalledTimes(1); // Success!
expect(pushRoute).toHaveBeenCalledWith('/some/route'); // Success!
});
这就是该组件需要测试的全部内容,因为它不负责进行重定向,它只是调用给定的 pushRoute
属性。
关于testing - onClick pushRoute 是否重定向到其他页面的 enzyme 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149474/