2016-06-10 6 views
6

Z najprostszym komponentem ReactJS Jest to, że nie raportuje pełnego zasięgu testu. Jak uzyskać wyciągi i odręby, aby pokazać 100%.Jak uzyskać pełny test pokrycia z Jest i ReactJS, obecnie na poziomie 90,48% wyciągów, 58,06% oddziału

Aktualnie wyświetla się 90.48% statements, 58.06% branch. Uruchom z 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

wiem, może nie każdy kawałek kodu meritum 100% pokrycia –

+3

@RobertMoskal Myślę, że musisz przeczytać mój przykład kodu w nieco więcej szczegółów. W mojej klasie nie ma niczego, co nie powinno być w 100% pokryte przez moje testy Jest. Mogę się tylko domyślać, że jest to błąd z Jest, lub Jest także szuka kodu, który nie jest wykonywany w super klasie w 'React.Component'. –

+0

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

Odpowiedz

1

Jest to najprawdopodobniej ze względu na transpiled kodem z Babel. Zobacz issue #817, gdzie ten problem został opracowany i niedawno rozwiązany.

Należy to naprawić, aktualizując do wersji [email protected].

Chociaż niektórzy ludzie wspomniano potrzebę dodania sourcemaps do ich .babelrc takich jak:

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

i aktualizować swoje żart jawnie z "coverageCollector": "jest-babel-istanbul"

+1

Witam, witam w stackoverflow. Opisz więcej odpowiedzi. kiedy masz link w swojej odpowiedzi, prawdopodobnie strona zostanie usunięta, a twoja odpowiedź stanie się bezużyteczna dla innych osób w przyszłości –

Powiązane problemy