如何使用Sinon存根AJAX调用

Ubu*_*Ubu 5 ajax jquery sinon

我有一个函数,它向端点发出一个AJAX请求并获取JSON,我如何使用Sinon伪造该AJAX请求,以便我可以测试该函数是否正常工作?

niu*_*ech 6

如果你正在使用jQuery.ajax(),你可以这样存根:

var returnData = {name: 'value'}
var stub = sinon.stub($, 'ajax');
stub.yieldsTo('success', returnData);
Run Code Online (Sandbox Code Playgroud)

然后你编写你的测试用例.

最后,您应该恢复原始jQuery.ajax()函数,如下所示:

$.ajax.restore();
Run Code Online (Sandbox Code Playgroud)