如何测试无状态组件

Muk*_*esh 5 unit-testing reactjs jest

我正在尝试测试以下组件,但出现错误,它是包含一些数据的功能组件。

下面的组件从父组件接收信息列表并进行渲染,其工作正常,但是在编写测​​试用例时,使用笑话和酶失败

import React from "react";

export const InfoToolTip = data => {
  const { informations = [] } = data.data;

  const listOfInfo = () => {
    return informations.map((info, index) => {
      const { name, id } = info;
      return [
        <li>
          <a
            href={`someURL?viewMode=id`}
          >
            {name}
          </a>
        </li>
      ];
    });
  };

  return (
    <div className="tooltip">
        <ul className="desc">{listOfInfo()}</ul>
    </div>
  );
};
Run Code Online (Sandbox Code Playgroud)

测试用例

import React from "react";
import { shallow, mount } from "enzyme";
import { InfoToolTip } from "../index.js";

describe("InfoToolTip", () => {
  it("tooltip should render properly",() => {
    const wrapper = mount(<InfoToolTip  />);
  });
});
Run Code Online (Sandbox Code Playgroud)

错误:TypeError:无法与“ undefined”或“ null”匹配。

Tom*_*zyk 5

当您mount InfoToolTip在组件中不传递任何道具时,尝试破坏data道具:

const { informations = [] } = data.data;
Run Code Online (Sandbox Code Playgroud)

因此,您可以通过以下方式修复它:

const wrapper = mount(<InfoToolTip data={{}} />);
Run Code Online (Sandbox Code Playgroud)

相关问题。