酶测试onClick pushRoute是否重定向到其他页面

时间:2019-03-13 19:03:24

标签: testing enzyme

美好的一天。 我正在对一些测试进行编码,但我不确定如何检查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,但是现在我不知道如何将其重定向到我想要的路由。

1 个答案:

答案 0 :(得分:1)

您还可以检查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属性。