Javascript 使用Jest和酶测试简单的反应成分-我做错了什么?
我是“单元测试”新手。我做错什么了?如何测试如此简单的组件Javascript 使用Jest和酶测试简单的反应成分-我做错了什么?,javascript,reactjs,unit-testing,enzyme,jestjs,Javascript,Reactjs,Unit Testing,Enzyme,Jestjs,我是“单元测试”新手。我做错什么了?如何测试如此简单的组件 test.js import React from 'react'; import { shallow } from 'enzyme'; import StartButton from './'; describe('StartButton', () => { const wrapper = shallow(<StartButton />); it('renders correctly', () =>
test.js
import React from 'react';
import { shallow } from 'enzyme';
import StartButton from './';
describe('StartButton', () => {
const wrapper = shallow(<StartButton />);
it('renders correctly', () => {
expect(wrapper).toMatchSnapshot();
});
it('renders correctly', () => {
expect(wrapper.find('.StartButton-container')).to.have.length(1);
});
});
错误
失败src\components\StartButton\test.js● 开始按钮›渲染
正确地
TypeError: Cannot read property 'have' of undefined
at Object.it (src/components/StartButton/test.js:13:54)
at new Promise (<anonymous>)
at Promise.resolve.then.el (node_modules/p-map/index.js:46:16)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
TypeError:无法读取未定义的属性“have”
在Object.it(src/components/StartButton/test.js:13:54)
在新的承诺()
在Promise.resolve.then.el(node_modules/p-map/index.js:46:16)
在
在进程中。_tick回调(内部/process/next_tick.js:188:7)
通过src\components\App\test.js
测试套件:1个失败,1个通过,共2个测试:1个失败,2个
已通过,共3个快照:2个已通过,2个总时间:0.181s,
估计1s运行了与更改文件相关的所有测试套件
手表用法:按w键可显示更多信息
我认为Jest没有内置matcher语法。您必须这样做:
expect(wrapper.find('.StartButton container').length).toBe(1)代码>
通过将要检查的值放入expect()
中,您需要使用chai
$ npm install chai
test.js
import React from 'react';
import { expect } from 'chai';
import StartButton from './StartButton'
describe('<Foo />', () => {
it('renders correctly', () => {
expect(wrapper.find('.StartButton-container')).to.have.length(1);
});
});
从“React”导入React;
从“chai”导入{expect};
从“./StartButton”导入StartButton
描述(“”,()=>{
它('正确渲染',()=>{
expect(wrapper.find('.StartButton容器')).to.have.length(1);
});
});
import React from 'react';
import { expect } from 'chai';
import StartButton from './StartButton'
describe('<Foo />', () => {
it('renders correctly', () => {
expect(wrapper.find('.StartButton-container')).to.have.length(1);
});
});