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”匹配。
当您mount InfoToolTip在组件中不传递任何道具时,尝试破坏data道具:
const { informations = [] } = data.data;
Run Code Online (Sandbox Code Playgroud)
因此,您可以通过以下方式修复它:
const wrapper = mount(<InfoToolTip data={{}} />);
Run Code Online (Sandbox Code Playgroud)