我正在努力寻找有关如何使用 Jasmine BDD 伪造 ajax 调用的任何示例?
我有一个自定义的 ajax 函数,其工作原理如下......
ajax({
url: 'JSON.php',
dataType: 'json',
onSuccess: function(resp) {
console.log(resp);
}
});
...而且我不知道如何创建一个存根来伪造调用实际的 ajax 函数。
我想避免调用 ajax 函数,因为如果对服务器的真正 ajax 调用需要一些时间来响应,并且我的测试套件中有大量规格,那么它可能会减慢我的测试套件的速度。
我听说你可以使用spyOn(namespace, 'ajax')
但这立刻就很烦人,因为它需要我包裹我的ajax
对象中的函数只是为了使用spyOn
函数(但无论如何我无法理解,因为我找不到任何具体的例子来伪造 ajax 调用)。
我还听说你可以使用createSpy()
但同样,文档也不是很有帮助(GitHub 上相应的 wiki 也不是)。
任何解释如何使用间谍创建虚假 ajax 调用的帮助将不胜感激!
您可以使用Sinon JS模拟框架,它内置了一个假服务器 http://sinonjs.org/docs/#server。您可以轻松地将它与 jasmine 一起使用:
beforeEach(function() {
server = sinon.fakeServer.create();
server.respondWith([200, { "Content-Type": "text/html", "Content-Length": 2 }, "OK"])
});
顺便提一句。如果你的 ajax 函数位于全局命名空间中,为什么不调用spyOn(window, 'ajax')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)