ric*_*ck1 2 javascript reactjs jestjs enzyme
我无法理解如何正确渲染元素中的测试。我写了这样一个测试:
const props = {
type: 'test_plan',
renewal: '25.06.2019',
subscriptionName: 'Test',
};
test('test component elements render', () => {
const wrapper = mount(<Component {...props} />);
console.log(wrapper.debug())
expect(wrapper.find('.link')).to.have.lengthOf(0);
expect(wrapper.find('type')).to.have.lengthOf(1);
});
Run Code Online (Sandbox Code Playgroud)
这是调试组件时我在控制台中的内容:
<div className="wrapper">
<div className="mobile">
<h3>
Test
</h3>
</div>
<div className="inner">
<h3>
Test
</h3>
<div className="type">
<h4>
Test Type 1
</h4>
<span>
25.06.2019
</span>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的错误 Cannot read property 'have' of undefined
如何正确测试组件中的元素是否呈现?
因此,您可以要求expectfromChai并使用Chai断言:
import * as React from 'react';
import { mount } from 'enzyme';
const expect = require('chai').expect; // <= use expect from Chai
const Component = () => (<div><div className="type"></div></div>);
test('test component elements render', () => {
const wrapper = mount(<Component />);
expect(wrapper.find('.link')).to.have.lengthOf(0); // Success!
expect(wrapper.find('.type')).to.have.lengthOf(1); // Success!
});
Run Code Online (Sandbox Code Playgroud)
...或者您可以使用.toHaveLength包含在中的断言Jest:
import * as React from 'react';
import { mount } from 'enzyme';
const Component = () => (<div><div className="type"></div></div>);
test('test component elements render', () => {
const wrapper = mount(<Component />);
expect(wrapper.find('.link')).toHaveLength(0); // Success!
expect(wrapper.find('.type')).toHaveLength(1); // Success!
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7092 次 |
| 最近记录: |