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
,然后测试语句。