javascript - 测试私有(private)无状态组件功能的最佳方法是什么?

标签 javascript reactjs

假设我们有这个无状态组件

import React from ‘react’;

const HelloWorld = ({name}) => (

  const sayHi = event => {
    alert(`Hi ${name}`);
  }

  return (
    <div>
      <a 
        href="#"
        onClick={sayHi}>Say Hi</a>
    </div>
  );
);

export default HelloWorld;

测试 sayHi 功能的最佳方法是什么?
知道我要为它做单元测试。

最佳答案

如果您只看 Jest docs,这应该非常简单.您基本上想要模拟点击并模拟/监视 alert 调用。

大致是这样的:

import React from 'react';
import {shallow} from 'enzyme';

test('that alert is called when clicking link', () => {

  const testName = 'Jack';
  // Render a checkbox with label in the document
  const hw = shallow(
    <HelloWorld name={testName} />
  );

  const alert = jest.fn();

  hw.find('a').simulate('click');
  expect(alert).toBeCalledWith('Hi ' + testName);
});

关于javascript - 测试私有(private)无状态组件功能的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587188/

相关文章:

image - 将 native 上传图像 react 为文件

reactjs - React + ApolloProvider + Typescript = "JSX element class does not support attributes"错误

javascript - ReactJS.NET MVC 教程不起作用?

reactjs - 组件未更新深度嵌套的 redux 对象

javascript - Workbox 似乎没有从 webpack 构建中预先缓存 block

javascript - 将应用了 CSS3 滤镜的 Canvas 保存为图像

javascript - 试图在单击时获取链接以在 div 中显示数据?

javascript - 已定义的变量返回未定义

javascript - 如何在 React Flux 架构中通过一个操作将数据传播到多个存储?

javascript - Typescript 获取泛型中的键类型