【发布时间】:2015-09-10 13:01:07
【问题描述】:
我有一个在 componentDidMount 方法中进行 AJAX 调用的反应组件。当我尝试使用 React.addons.TestUtils 渲染它时,组件在没有进行 AJAX 调用的情况下被渲染。我将如何使用 jest 测试反应组件以便它进行 AJAX 调用?我是否还需要使用 phantomJS(或类似 env 的浏览器)来提供 DOM 功能来响应组件?
反应组件:
return React.createClass({
componentDidMount : function() {
$.ajax({
... makes http request
})
}
render : function() {
<div>
//view logic based on ajax response...
</div>
}
});
测试用例:
jest.dontMock(../MyComponent);
var React = require('react/addons');
var TestUtils = React.addons.TestUtils;
var MyComponent = require(../MyComponent);
describe('Sample Test', function(){
it('To Render the component', function() {
var component = <MyComponent />;
var DOM = TestUtils.renderIntoDocument(component);
.... // Some other code...
});
})
【问题讨论】:
标签: ajax unit-testing reactjs jestjs reactjs-testutils