我想对我使用“create-react-app”软件包创建的应用程序进行一些基本的单元测试。我相信它已经安装了Jest。
我的应用程序中有一些基本的redux代码。
我想测试一下:
它渲染主要组件(App.js)而不会崩溃
点击以显示下一项功能
我使用“npm install --save-dev enzyme”和“enzyme-adapter-react-15”安装了酶。
这是我的代码:
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
我认为我做错了一些基本的事情。
任何帮助表示赞赏!!!
答案 0 :(得分:1)
您正在使用Jest的expect
功能。您需要从chai
明确声明导入。
它看起来像:
import { expect } from 'chai'
it('should render App Component', () => {
expect(wrapper).to.have.length(1)
})
此外,您可以将文件setupTests.js
添加到/src
,而不是为每个测试添加适配器配置,它将适用于所有测试: - )
答案 1 :(得分:1)
您可能从酶的网站上的示例中复制了它,该网站使用了chai。您尝试测试的内容相当于:
it('should render App Component', () => {
expect(wrapper).toHaveLength(1)
})