2016-06-10 10 views
6

Con il componente ReactJS più semplice, Jest non segnala la copertura completa del test. Come ottenere dichiarazioni e branch per mostrare il 100%.Come ottenere la copertura completa del test con Jest e ReactJS, attualmente al 90,48% di dichiarazioni, 58,06% diramazione

Attualmente Jest mostra 90.48% statements, 58.06% branch. Esegui con jest --coverage.

MyThing.js

import React from 'react'; 

export default class MyThing extends React.Component { 
    render() { 
    return (
     <div> 
     Stuff 
     </div> 
    ); 
    } 
} 

MyThing-test.js

// __tests__/MyThing-test.js 

jest.unmock('../app/views/static/MyThing'); 

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import TestUtils from 'react-addons-test-utils'; 

import MyThing from '../app/views/static/MyThing'; 


describe('MyThing',() => { 

    const instance = TestUtils.renderIntoDocument(
     <MyThing /> 
    );   

    it('gets rendered',() => {  
    expect(TestUtils.isCompositeComponent(instance)).toBeTruthy();   
    }); 


    it('is not DOM component',() => { 
    // checks if is a standard DOM element, i.e. <div> 
    expect(TestUtils.isDOMComponent(instance)).not.toEqual(true);  
    }); 

    it('isElementOfType is React element',() => { 
    expect(TestUtils.isElementOfType(<MyThing />, MyThing)).toEqual(true); 
    }); 

    it('render()',() => {  
    const retVal = instance.render(); 

    expect(retVal.type).toEqual("div");  
    }); 

}); 
+1

Boh, forse non ogni pezzo di meriti codice 100% di copertura –

+3

@RobertMoskal Penso che tu abbia bisogno di leggere il mio esempio di codice in modo un po 'più dettagliato. Non c'è niente nella mia classe che non dovrebbe essere coperto al 100% dai miei test di Jest. Posso solo immaginare che sia un bug con Jest, o Jest sta anche guardando il codice che non viene eseguito nella super-classe in 'React.Component'. –

+0

expect (retVal.props.children.length) .toEqual (1); – vijayst

risposta

1

Questo è probabilmente dovuto al codice transpiled da Babele. Vedere issue #817 in cui è stato elaborato il problema e risolto di recente.

Questo problema deve essere risolto con l'aggiornamento a [email protected].

Anche se alcune persone hanno menzionato la necessità di aggiungere sourcemaps alla loro .babelrc quali:

{ 
    "env": { 
    "test": { 
     "sourceMaps": "both" 
    } 
    } 
} 

e aggiornare il loro scherzo in modo esplicito con "coverageCollector": "jest-babel-istanbul"

+1

Ciao, benvenuto su StackOverflow. Si prega di descrivere le risposte di più. quando hai un link nella tua risposta, è probabile che la pagina venga rimossa e la tua risposta diventi inutile per altre persone in futuro –

Problemi correlati