2017-08-29 55 views
1

我需要幫助以瞭解如何改進我的測試?如何用笑話改進反應組分的測試?

我覆蓋branches測試100%但不能做statements測試,functions測試和lines測試那麼如何涵蓋這些?

這裏是我的代碼覆蓋(由開玩笑提供): code-coverage-img

這裏是我的測試:

/** 
* 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); 
    }); 
}); 

任何意見都歡迎。

+1

也許你需要使用'render'而不是'shallow',然後測試這些語句。 – Mihir

回答

1

首先,您可以看到this.props已突出顯示,並且您已在組件內設置了具有className的props className。

您可以測試默認的className的存在,並試圖建立一個:

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); 
}); 

至於渲染,我建議你遵循評論給出的建議。