Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何测试使用样式化组件构建的组件_Reactjs_Jestjs_Tdd_Enzyme - Fatal编程技术网

Reactjs 如何测试使用样式化组件构建的组件

Reactjs 如何测试使用样式化组件构建的组件,reactjs,jestjs,tdd,enzyme,Reactjs,Jestjs,Tdd,Enzyme,我是一个新的反应测试和与笑话和酶。 我试图首先学习如何使用TDD方法,因此,我在开始编码之前构建测试。 我所做的是在React中创建了一个示例应用程序,安装了Ezyme dependencies,然后编写了测试: import { shallow } from "enzyme"; import React from "react"; import AppLayout from "./AppLayout"; import { ContentLayout } from "./styles"; it

我是一个新的反应测试和与笑话和酶。 我试图首先学习如何使用TDD方法,因此,我在开始编码之前构建测试。 我所做的是在React中创建了一个示例应用程序,安装了Ezyme dependencies,然后编写了测试:

import { shallow } from "enzyme";
import React from "react";
import AppLayout from "./AppLayout";
import { ContentLayout } from "./styles";

it("renders <AppLayout /> component", () => {
  const wrapper = shallow(<AppLayout />);
  expect(wrapper.find(ContentLayout)).to.have.lengthOf(1);
});
我想了解如何测试这种组件,以及当我从零开始一个项目时,在考虑TDD时,通常要遵循哪些规则

然后在App.js中调用AppLayout

import React from "react";
import AppLayout from "./Components/AppLayout";

function App() {
    return <AppLayout />;
}

export default App;
从“React”导入React;
从“/Components/AppLayout”导入AppLayout;
函数App(){
返回;
}
导出默认应用程序;
您应该在jestjs中使用
expect
的匹配器

expect(wrapper.find(ContentLayout)).toHaveLength(1);
对于嵌套组件,通常有两种策略:

浅层渲染有助于约束您将组件作为一个单元进行测试,并确保您的测试不会间接断言子组件的行为

这意味着我们不想呈现嵌套组件(
ContentLayout
),我们只测试父组件(
AppLayout
)的行为(生命周期方法、事件处理程序、数据获取、条件呈现等)

完整DOM呈现非常适合于具有可能与DOM API交互的组件或需要测试封装在高阶组件中的组件的用例

您应该在jestjs中使用
expect
的匹配器

expect(wrapper.find(ContentLayout)).toHaveLength(1);
对于嵌套组件,通常有两种策略:

浅层渲染有助于约束您将组件作为一个单元进行测试,并确保您的测试不会间接断言子组件的行为

这意味着我们不想呈现嵌套组件(
ContentLayout
),我们只测试父组件(
AppLayout
)的行为(生命周期方法、事件处理程序、数据获取、条件呈现等)

完整DOM呈现非常适合于具有可能与DOM API交互的组件或需要测试封装在高阶组件中的组件的用例


你读过笑话吗
.to
不是他们expect API的一部分:,你可能会想到Chai的。我也在遵循这个答案,但这是不存在的。我正在尝试使用tohavelenght(数字)你读过Jest文档吗
.to
不是他们expect API的一部分:,你可能会想到Chai的。我也在遵循这个答案,但这是不存在的,我正在尝试使用tohavelenght(数字)
TypeError: Cannot read property 'have' of undefined
import React from "react";
import AppLayout from "./Components/AppLayout";

function App() {
    return <AppLayout />;
}

export default App;