我正在爲某人的應用程序編寫一些測試代碼。我是專門爲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或者我錯誤地試圖覆蓋它。