我正在为某人的应用程序编写一些测试代码。我是专门为React编写测试的新手。反应测试假XMLHttpRequest
在该组件内的方法之一,一个新XMLHttpRequest
对象被实例化,然后用于像这样:
var myModal = React.createClass({
postRequest: function(data) {
var json = JSON.stringify(data)
var request = new XMLHttpRequest()
request.open('POST', '/my/endpoint', true)
request.setRequestHeader('Content-Type', 'application/json')
request.send(json)
}
//...
}
我使用Sinon,和它们的文件说,有可以使用的一个假的XMLHttpRequest用于测试AJAX请求。我想知道如何覆盖这个与Sinon一样的实例化对象,以便测试使用它来进行api调用。
如果我尝试和假分配给request
变量:
before(function() {
request = sinon.useFakeXMLHttpRequest();
requests = [];
request.onCreate = function (req) { requests.push(req); };
});
测试还是倒了,当它到达该组件的new XMLHttpRequest()
线。我应该创建并导入一个存根对象吗? https://github.com/danvk/mocha-react/blob/jsx-stubs/BigComplicatedComponent.js或者我错误地试图覆盖它。