2017-08-29 1 views
1

Ich brauche Hilfe, um zu verstehen, wie ich meinen Test verbessern kann?Wie Test der Reaktionskomponente mit Spaß verbessern?

Ich bedeckt branches Tests zu 100%, aber statements Tests nicht tun können, functions Tests und lines Tests so wie diese abgedeckt?

Hier ist meine Code-Abdeckung (durch Scherz zur Verfügung gestellt): code-coverage-img

Und hier ist mein Test:

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

Jede Beratung ist willkommen.

+1

Vielleicht müssen Sie 'render' anstelle von' shallow' verwenden und dann die Anweisungen testen. – Mihir

Antwort

1

Zuerst können Sie sehen, dass die this.props markiert ist und dass Sie innerhalb der Komponente die Requisiten className mit einem className standardmäßig festgelegt haben.

Sie könnten das Vorhandensein des Standardklassennamen testen und auch eine setzen versucht:

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

Was den Rendering, empfehle ich Ihnen den Rat im Kommentar zu befolgen.