jest测试ajax,使用Jest测试React Component Mount

我正在试图弄清楚如何通过mount上的ajax加载初始数据时测试react组件 .

var ResourceList = React.createClass({

componentDidMount: function() {

api.fetchResources(this.props.type).then(function(raw) {

console.log(raw);

this.setState({

resources: raw

});

}.bind(this));

},

getInitialState: function() {

return {

resources: []

};

},

render: function() {

var resources = this.state.resources.map(function(resource, index) {

return (

);

});

return (

  • {resources}

);

}

});

componentDidMount 函数调用返回jquery promise的API .

var fetchResources = function(type) {

var endpoint = '/resources';

return $.ajax({

url: base + endpoint + '/' + type,

dataType: 'json',

headers: headers

});

}

// Return promise

module.exports = {

fetchResources: fetchResources

};

我的测试代码如下所示:

describe('something', function() {

beforeEach(function() {

React = require('react/addons');

TestUtils = React.addons.TestUtils;

ResourceListComponent = require('../app/components/resource-list');

ResourceList = TestUtils.renderIntoDocument();

// Dummy data from server

resources = [{

author: 'author',

body: 'body'

}];

// Add the dummy data from the server

ResourceList.setState({

resources: resources

});

});

it('1', function() {

expect(ResourceList.state.resources.length).toBe(1);

});

});

我得到的错误是:“TypeError:无法调用方法'然后'未定义',这是可以理解的,但我怎么能纠正这个?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值