我正在为某人的应用程序编写一些测试代码。我是专门为 React 编写测试的新手。
在组件内部的一个方法中,一个新的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 http://sinonjs.org/,他们的文档说有一个 Fake XMLHttpRequest 可用于测试 AJAX 请求。我想了解如何准确地覆盖这个new
我们使用 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 https://github.com/danvk/mocha-react/blob/jsx-stubs/BigComplicatedComponent.js或者我错误地试图覆盖它。
终于让这个工作了。将其添加到顶部。我想它应该可以覆盖任何类。
var FakeXMLHTTPRequests = require('fakexmlhttprequest')
var requests = []
XMLHttpRequest = function() {
var r = new FakeXMLHTTPRequests(arguments)
requests.push(r)
return r
}
感谢这篇文章帮助我思考这个问题。http://www.asbjornenge.com/wwc/testing_react_components.html http://www.asbjornenge.com/wwc/testing_react_components.html
如果使用 XMLHttpRequest 也可以这样:sinon 的假 XMLHttpRequest 的正确用法 https://stackoverflow.com/questions/32304150/correct-usage-of-sinons-fake-xmlhttprequest?lq=1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)