我有以下代码:
_getDetails: function() {
var headers;
var resp;
var self = this;
headers = this._setHeaderFunction();
this.prepareAjaxCall({
url: http: jsonplaceholder.typicode.com/posts/1,
headers: headers,
method: 'GET',
success: function(request) {
self._handler(request.response, false);
},
error: function(data){
resp = event.currentTarget.response.info;
self._handler(resp, true);
}
});
return this.$.ajax.generateRequest();
我正在尝试编写一个测试套件(mocha,sinon)来覆盖这个_getDetails函数。到目前为止,除了success()和error()方法之外,我能够测试身体的大部分。当我执行测试验证时,它告诉我没有涵盖有关这些方法的行。到目前为止我试过这个:
var ajax = myEl.$.ajax;
sinon.spy(ajax,'generateRequest');
sinon.spy(myEl, '_handler');
sinon.spy(ajax, '_boundHandleResponse')
var request = myEl._getDetails();
//in the prepareAjaxCall method, if the object passed to the function has a success method, it is assigned to the iron-ajax's _boundHandleResponse variable.
var success = ajax._boundHandleResponse;
setTimeout(function () {
success(request, true);
expect(success).to.have.been.calledWith(request);
expect(myEl._handler).to.have.been.calledWith(request.response, false);
},1000)
如何隔离成功和错误函数以便单独测试它们,从而让mocha将这些行识别为被测试?