我正在尝试测试一个组件而且我一直在查看文档,而且我没有很好地参考如何测试它们的失败。
我想测试组件未传递必需属性的情况,因此无法安装。
我目前的测试:
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);
});
});
现在,虽然测试成功,但这并不像测试组件无法安装的正确方法那样。什么是正确的方法?
答案 0 :(得分:1)
使用Jest编写测试的一种稍微优雅的方式是:
describe('Carousel', () => {
it('throws when image array is not provided', () => {
expect(() => {
var CarouselDom = ReactTestUtils.renderIntoDocument(<Carousel/>);
}).toThrow();
});
});