Jasmine 2.0如何处理Ajax请求

马塞尔

我想测试一个功能,其中包括ajax请求。测试应等待ajax请求成功/失败。运行测试不起作用,因为它现在不等待。

这是我要测试的:

this.requestServerBoxId = function()
{
    //ajax-request
    $.ajax({
        url: this.host_addr+"/?getid="+this.name,
        type: 'POST',
        data: {_data:this._data},
        success: function(data) {
            return IdSuccess(data);
        },
        error: function(data){
            return false;
        }
    });
}
function IdSuccess(data){
   if(typeof data != undefined)
       return true;
    return false;
}

这是我的测试:

it("should call a function after ajax-success", function(){
    expect(this.Process.requestServerBoxId()).toBe(true);
});

我尝试了间谍,但我猜我在错误地使用它们:

 spyOn($, 'ajax' ).and.returnValue(123);

我希望每次发出ajax请求时,此间谍返回123。但这是行不通的。

唐纳德·泰勒

在Jasmine 2.0中,有一个全新的API用于测试ajax(以及几乎所有其他内容)。

代替:

spyOn($, 'ajax').and.returnValue(123);

测试之前设置beforeEachafterEach方法it

beforeEach(function() {
  jasmine.Ajax.install();
  jasmine.Ajax.stubRequest('YOUR_URL_HERE').andReturn({
    responseText: 'YOUR_RAW_STUBBED_DATA_HERE'
  });
});

afterEach(function() {
  jasmine.Ajax.uninstall();
});

it('My Ajax Test', function() {
  // . . . code that makes an ajax request . . .
});

然后it测试将按预期执行其ajax请求。

注意,这使您的ajax调用本质上是同步的,但立即进行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何处理Jasmine JS在Webdriver中对“文本”进行的验证?

来自分类Dev

如何在Angular 2 Jasmine中测试模型类型

来自分类Dev

如何处理Ajax结果(Struts2)

来自分类Dev

如何处理Ajax结果(Struts2)

来自分类Dev

如何处理从0到2 ^ 95的循环?

来自分类Dev

如何重用Jasmine测试

来自分类Dev

如何处理 2 FragmentTransaction

来自分类Dev

量角器-如何在Jasmine上使用标签进行e2e测试

来自分类Dev

使用 jasmine 测试 ajax 调用

来自分类Dev

在Jasmine单元测试中处理AJAX发布请求回调

来自分类Dev

使用Jasmine 2的spyOn测试Angular指令

来自分类Dev

Angular 2/Jasmine 测试输入字段绑定

来自分类Dev

Angular2 Jasmine spyOn http 调用

来自分类Dev

Atom 如何运行 jasmine 测试?

来自分类Dev

Python Pandas数据透视表如何处理'\ xc2 \ xa0'?

来自分类Dev

如何处理imaplib2错误

来自分类Dev

如何处理依赖循环匕首2

来自分类Dev

如何处理超过2 GB的RAM?

来自分类Dev

Webpack 2如何处理@import语句?

来自分类Dev

使用Jasmine 2.0测试初始ajax请求的结果

来自分类Dev

部分ajax请求后如何处理非ajax响应?

来自分类Dev

量角器Jasmine 2会比Jasmine 1.3提供任何好处吗?

来自分类Dev

Ajax成功期间返回的Jasmine测试值

来自分类Dev

如何处理来自jquery中ajax请求的204响应

来自分类Dev

如何处理来自Ajax POST请求的多个文件响应?

来自分类Dev

如何处理缓慢的Ajax请求/连接缓慢的人

来自分类Dev

如何使用Jasmine,AngularJs测试_.defer()

来自分类Dev

如何使用Jasmine监视Angular Promise链

来自分类Dev

运行代码时如何使Jasmine测试失败