Reactjs 如何用jest改进react组件的测试?
我需要帮助了解如何改进我的测试 我涵盖了Reactjs 如何用jest改进react组件的测试?,reactjs,jestjs,Reactjs,Jestjs,我需要帮助了解如何改进我的测试 我涵盖了分支测试到100%,但无法进行语句测试、函数测试和行测试,那么如何涵盖这些测试呢 以下是我的代码覆盖范围(由jest提供): 这是我的测试: /** * Testing our ItemList component */ import { shallow } from 'enzyme'; import React from 'react'; import { BootstrapProvider } from 'bootstrap-styled'; imp
分支
测试到100%,但无法进行语句
测试、函数
测试和行
测试,那么如何涵盖这些测试呢
以下是我的代码覆盖范围(由jest提供):
这是我的测试:
/**
* Testing our ItemList component
*/
import { shallow } from 'enzyme';
import React from 'react';
import { BootstrapProvider } from 'bootstrap-styled';
import ItemList from '../index';
const renderComponent = (props = {}) => shallow(
<BootstrapProvider>
<ItemList {...props} />
</BootstrapProvider>
);
describe('<ItemList />', () => {
it('should render an <ItemList /> tag', () => {
const renderedComponent = renderComponent();
expect(renderedComponent.find('ItemList').length).toBe(1);
});
});
/**
*测试ItemList组件
*/
从“酶”导入{shall};
从“React”导入React;
从“bootstrap styled”导入{BootstrapProvider};
从“../index”导入ItemList;
const renderComponent=(props={})=>shall(
);
描述(“”,()=>{
它('应该呈现标记',()=>{
const renderComponent=renderComponent();
expect(renderedComponent.find('ItemList').length).toBe(1);
});
});
欢迎提供任何建议。首先,您可以看到,
this.props
突出显示,并且您已经在组件中默认设置了带有类名的props类名
您可以测试是否存在默认类名,并尝试设置一个:
it('should render an <ItemList /> with a className', () => {
const renderedComponent = renderComponent({
className:'className-test'
});
expect(renderedComponent.find('ItemList').hasClass('className-test')).toEqual(true);
});
it('should render an <ItemList /> with a className 'item' by default ', () => {
const renderedComponent = renderComponent();
expect(renderedComponent.find('ItemList').hasClass('item')).toEqual(true);
});
it('应该用类名呈现一个',()=>{
常量renderComponent=renderComponent({
className:'className-test'
});
expect(renderedComponent.find('ItemList').hasglass('className-test')).toEqual(true);
});
它('默认情况下,应使用类名'item'呈现',()=>{
const renderComponent=renderComponent();
expect(renderedComponent.find('ItemList').hasglass('item')).toEqual(true);
});
至于渲染,我建议您遵循注释中给出的建议。也许您需要使用
render
而不是shall
,然后测试语句。