加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Jasmine BDD为ajax函数创建存根

发布时间:2020-12-16 02:49:24 所属栏目:百科 来源:网络整理
导读:我很难找到关于如何使用Jasmine BDD伪造ajax调用的任何示例? 我有一个定制的ajax函数,就像这样…… ajax({ url: 'JSON.php',dataType: 'json',onSuccess: function(resp) { console.log(resp); }}); …而且我不知道如何创建一个存根来伪造调用实际的ajax函
我很难找到关于如何使用Jasmine BDD伪造ajax调用的任何示例?

我有一个定制的ajax函数,就像这样……

ajax({
    url: 'JSON.php',dataType: 'json',onSuccess: function(resp) {
        console.log(resp);
    }
});

…而且我不知道如何创建一个存根来伪造调用实际的ajax函数.

我想避免调用ajax函数,因为它可能会减慢我的测试套件,如果对服务器的真正的ajax调用需要一些时间来响应并且我的测试套件中有大量的规范.

我听说你可以使用spyOn(命名空间,’ajax’),但这很烦人,因为它要求我将ajax函数包装在一个对象中只是为了使用spyOn函数(但无论我怎么都无法关注因为我找不到任何伪造ajax调用的具体例子.

我也听说你可以使用createSpy()但是文档也不是很有用(GitHub上也没有相应的wiki).

任何帮助解释如何使用间谍创建一个虚假的ajax调用将不胜感激!

解决方法

您可以使用SinonJS模拟框架,它具有 fake server版本.您可以轻松地将其与jasmine一起使用:

beforeEach(function() {
        server = sinon.fakeServer.create();
        server.respondWith([200,{ "Content-Type": "text/html","Content-Length": 2 },"OK"])
});

顺便说一句.如果你的ajax函数在全局命名空间中,为什么不调用spyOn(window,’ajax’)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读