testing - onClick pushRoute 是否重定向到其他页面的 enzyme 测试

标签 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,但我现在不知道如何检查它是否重定向到我想要的路由。

最佳答案

您还可以检查是否使用预期路线调用了 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/

相关文章:

testing - UFT 未在某些播放中识别窗口

testing - 自动化服务器运行的 Testcafe 测试随机失败

javascript - 为什么 JEST 测试中的 getCompulatedStyle() 返回与 Chrome/Firefox DevTools 中的计算样式不同的结果

reactjs - 用 enzyme 和 Jasmine 测试高阶成分

javascript - 在 Jest 测试中使用 Enzyme 在 React 中查找命名空间子组件

reactjs - enzyme `mount` 不呈现 `Route` 元素

testing - 使用 Mercurial 时,在内部发布产品测试版本并保留 "what is in this version"列表的过程?

c# - shim 类未生成所有公共(public)方法

c# - 如何模拟不是 "safe thread"字典的行为?

javascript - 如何测试 React 组件类方法