2016-09-13 5 views
1

Ich versuche, eine Komponente zu testen, und ich habe mir die Dokumentation angeschaut, und ich habe keine gute Referenz, um ihren Fehler zu testen.React - Testkomponente propTypes - erwarte einen Fehler

Ich möchte das Szenario testen, in dem eine Komponente erforderliche Eigenschaften nicht übergeben wird und daher nicht bereitgestellt werden konnte.

Mein aktueller Test:

jest.dontMock('./Carousel.react.js'); 
jest.dontMock('react'); 
var React = require('react'); 
var ReactTestUtils = require('react-addons-test-utils'); 
var Carousel = require('./Carousel.react.js'); 

/* 
Carousel propTypes 
propTypes: { 
    choices: React.PropTypes.array.isRequired, // an array of image URLs 
    choice: React.PropTypes.string 
}, 
*/ 

describe('Carousel', function() { 

    it('should fail when images array is not provided', function() { 
    var failed = false; 
    try { 
     var CarouselDom = ReactTestUtils.renderIntoDocument(<Carousel/>); 
     var wrapperDiv = ReactTestUtils.scryRenderedDOMComponentsWithTag(CarouselDom, 'div'); 
    } catch(e) { 
     failed = true; 
    } 
    expect(failed).toBe(true); 
    }); 

}); 

Jetzt, während der Test erfolgreich ist, bedeutet dies nicht wie die richtige Art und Weise FEEL zu testen Komponente zu montieren scheitern. Was ist der richtige Weg?

+0

es gut aussieht. Ist die Aussage erforderlich? – vijayst

Antwort

1

Eine etwas eleganter Weg, um den Test mit Jest des Schreibens ist:

describe('Carousel',() => { 
    it('throws when image array is not provided',() => { 
    expect(() => { 
     var CarouselDom = ReactTestUtils.renderIntoDocument(<Carousel/>); 
    }).toThrow(); 
    }); 
}); 
+0

Das fühlt sich eleganter an. – SoluableNonagon