首页 > 解决方案 > 在“create-react-app”应用程序中使用 Enzyme 对 React/Redux 进行单元测试

问题描述

我想对使用“create-react-app”包创建的应用程序进行一些基本的单元测试。我相信它已经安装了 Jest。

我的应用中有一些基本的 redux 代码。

我想测试:

  1. 它呈现主要组件(App.js)而不会崩溃

  2. 点击显示下一项功能

我已经使用“npm install --save-dev 酶”和“enzyme-adapter-react-15”安装了 Enzyme。

这是我的代码:

import React from 'react';
import ReactDOM from 'react-dom';
import {App} from './App';
import { shallow, mount, render, configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-15';

configure({ adapter: new Adapter() });

describe('A test for App component', () => {
 let wrapper

 beforeEach(()=>{
   wrapper = shallow(<App />);
 })

 it('should render App Component', () => {
   expect(wrapper).to.have.length(1)
 })
})

我无法让测试开始工作。错误信息:

TypeError: Cannot read property 'length' of undefined

TypeError: Cannot read property 'have' of undefined

我认为我做错了一些基本的事情。

任何帮助表示赞赏!

标签: reactjsjestjsenzyme

解决方案


您可能从酶网站上的示例中复制了它,该网站使用了 chai。您要测试的开玩笑等价物是:

it('should render App Component', () => {
   expect(wrapper).toHaveLength(1)
})

推荐阅读