gpt4 book ai didi

reactjs - 在测试中隔 ionic 组件 - react-testing-library 和 Jest

转载 作者:行者123 更新时间:2023-12-05 08:25:50 25 4
gpt4 key购买 nike

我在我的项目中使用了 react-testing-library & jest。

我的问题是:当我测试我的父组件时,我可以将我的子组件与测试隔离开来吗?

这是我的组件:

export const Parent: FC = ({items}) => {
return (
<>
<ListComponent items={items} />
<ChildWillBeIsolated />
</>
)
}

这是我的测试:

import React from "react";
import { Parent as Component } from "./";
import { render } from "@testing-library/react";

const items = [
{
title: "A"
id: 1
},
{
title: "B"
id: 2
}
]

it("renders without crashing", async () => {
const wrapper = render(
<Component items={items} />
);
expect(wrapper).toMatchSnapshot();
wrapper.unmount();
});

所以在这里我不想将我的 ChildWillBeIsolated 组件与测试隔离开来。我该怎么做?

最佳答案

react-testing-library没有浅渲染的选项,所以从技术上讲你不能。但这并不意味着您不能隔 ionic 组件并对其进行测试。您可以做的是模拟子组件;

import React from "react";
import { Parent as Component } from "./";
import { ChildWillBeIsolated } from "../ChildWillBeIsolated";
import { render } from "@testing-library/react";

const items = [
{
title: "A"
id: 1
},
{
title: "B"
id: 2
}
]

jest.mock("../ChildWillBeIsolated", () => {
return {
__esModule: true,
default: () => { // if you exporting component as default
return <div/>;
},
ChildWillBeIsolated: () => { // if you exporting component as not default
return <div/>;
},
};
});

it("renders without crashing", async () => {
const wrapper = render(
<Component items={items} />
);
expect(wrapper).toMatchSnapshot();
wrapper.unmount();
});

上面的代码不应抛出任何错误,因为您将子组件的返回值模拟为 <div/>

关于reactjs - 在测试中隔 ionic 组件 - react-testing-library 和 Jest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61864160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com