我有一个使用componentDidMount方法调用AJAX的react组件.当我尝试使用它时React.addons.TestUtils,组件在不进行AJAX调用的情况下进行渲染.如何使用jest测试react组件,以便进行AJAX调用?我是否还需要使用phantomJS(或像env这样的浏览器)来提供反应组件的DOM能力?
反应组件:
return React.createClass({
componentDidMount : function() {
$.ajax({
... makes http request
})
}
render : function() {
<div>
//view logic based on ajax response...
</div>
}
});
Run Code Online (Sandbox Code Playgroud)
测试用例:
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...
});
})
Run Code Online (Sandbox Code Playgroud)