测试JSONP $ resource AngularJS

丹·坎泽

如何通过JSONP服务测试正在发送的请求和正在接收的数据?

angular.module('search', [])
  .factory('SearchService', function($q,$rootScope,$resource) {
    var _search = {};
    _search.user = function(opts){
        return $resource('https://api.github.com/users/:user', {user: opts.user}, {
            search: {method:'JSONP',params:{callback: 'JSON_CALLBACK'}}
        });
    }
    return _search;
});

遵循GET请求示例:

describe('search tests', function () {
    var svc, httpBackend;

    beforeEach(function (){  
      module('ngResource');
      module('search');
      inject(function($httpBackend, SearchService) {
        svc = SearchService;      
        httpBackend = $httpBackend;
      });
    });

    afterEach(function() {
      httpBackend.verifyNoOutstandingExpectation();
      httpBackend.verifyNoOutstandingRequest();
    });

    it('should send the message and return the response', function (){
        var returnData = { testing: 'anything'};
        httpBackend.expectJSONP('https://api.github.com/users/gigablox?callback=JSON_CALLBACK').respond(returnData);
        svc.user({user:'gigablox'}, function(user) {
            expect(user.testing).toEqual('anything');
        });
        httpBackend.flush();
    });
});

我似乎无法得到一些错误:

  • Error: No pending request to flush !
  • Error: Unsatisfied requests: JSONP

使用AngularJS 1.2和Karma 0.10.2

编辑

在这里工作:http : //jsfiddle.net/DhUqT/

Ye Liu

尝试search像下面这样称呼您

svc.user({user:'gigablox'}).search(function(user) {
    expect(user.testing).toEqual('anything');
});

原因是调用方法svc.user()返回资源类对象search()search()方法使用jsonp发出请求。如果不调用该search()方法,$ httpBackend将不会看到任何请求,因此您会看到问题中提到的错误。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在AngularJS中测试$ resource服务

来自分类Dev

AngularJS:测试$ resource PUT请求

来自分类Dev

测试对象是否为angularJS $ resource

来自分类Dev

带参数的单元测试AngularJs $ resource查询

来自分类Dev

带参数的单元测试AngularJs $ resource查询

来自分类Dev

AngularJs $ resource动态URL

来自分类Dev

$ angularjs中的$ resource无效

来自分类Dev

AngularJs $ resource动态URL

来自分类Dev

如何在AngularJS中使用$ http.jsonp对功能进行单元测试?

来自分类Dev

如何在AngularJS中使用$ http.jsonp对功能进行单元测试?

来自分类Dev

一个程序PhantomJS如何在尝试测试返回的数据之前等待AngularJS $ resource解析?

来自分类Dev

使用$ resource对控制器进行单元测试时,AngularJS“没有等待刷新的请求”

来自分类Dev

中止JSONP请求AngularJs

来自分类Dev

JSONP查询和AngularJS

来自分类Dev

了解angularJS $ resource isArray属性

来自分类Dev

如何模拟angularjs $ resource工厂

来自分类Dev

通过angularjs $ resource获取数据

来自分类Dev

angularjs处理$ resource $ promise错误

来自分类Dev

AngularJS - transformRequest is not getting called on $resource

来自分类Dev

AngularJS $ resource参数名称

来自分类Dev

AngularJS:自动链接$ resource操作

来自分类Dev

AngularJS $ resource生成的奇怪网址

来自分类Dev

服务函数中的AngularJS $ resource

来自分类Dev

AngularJS $ resource类与实例方法

来自分类Dev

来自$ resource的自动完成Angularjs

来自分类Dev

AngularJS从$ resource回调返回

来自分类Dev

通过angularjs $ resource获取数据

来自分类Dev

AngularJS $ resource GET中的多个参数

来自分类Dev

AngularJS $ resource-通过变量调用方法?

Related 相关文章

热门标签

归档