小编alo*_*tal的帖子

单元测试反应使用JEST进行ajax调用的组件

我有一个使用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)

ajax unit-testing reactjs jestjs reactjs-testutils

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

ajax ×1

jestjs ×1

reactjs ×1

reactjs-testutils ×1

unit-testing ×1