【发布时间】:2018-10-19 01:02:25
【问题描述】:
我想对我使用“create-react-app”包创建的应用程序进行一些基本的单元测试。我相信它已经安装了 Jest。
我的应用中有一些基本的 redux 代码。
我要测试:
它渲染主组件(App.js)而不会崩溃
点击显示下一项功能
我使用“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
我认为我做错了一些基本的事情。
感谢任何帮助!!!
【问题讨论】:
-
我认为只有执行
shallow(<App />)才能测试 App 组件渲染时不会崩溃。如果您需要检查按钮是否存在,您可以将find与查询选择器一起使用并检查其长度。要模拟点击,它看起来像wrapper.find(Button).at(0).simulate('click') -
您好 Erich,我无法进行我必须工作的测试。