wcxuan0729 2014-12-29 07:57 采纳率: 0%
浏览 3504

angular http 服务模块 测试问题

服务模块代码为
/*
* 向后台GET数据
*/
this.Get = function (url, data, successCb, errCb) {
$http({
method: 'GET',
url: url,
params: data
}).success(function (response, status, headers, config) {
if (successCb && typeof successCb === 'function') {
successCb(response, status, headers, config);
}
}).error(function (response) {
if (errCb && typeof errCb === 'function') {
errCb(response);
}
});
};

  /*
   * 向后台Post数据
   */
  this.Post = function (url, data, successCb, errCb) {
    $http.post(url, data).success(function (response, status, headers, config) {
      if (successCb && typeof successCb === 'function') {
        successCb(response, status, headers, config);
      }
    }).error(function (response) {
      if (errCb && typeof errCb === 'function') {
        errCb(response);
      }
    });
  };


        测试服务代码为:

        describe('Service: Ajax', function () {
// instantiate service
var Ajax, $http, $httpBackend, responseData;

// load the service's module
beforeEach(module('coursewareApp.services.Ajax'));

beforeEach(inject(function (_Ajax_, _$http_, _$httpBackend_) {
  Ajax = _Ajax_;
  $http = _$http_;
  $httpBackend = _$httpBackend_;
}));

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

it('should do something', function () {
  expect(!!Ajax).toBe(true);
  console.log($httpBackend);
  // 设置期待请求和响应
  $httpBackend
    .when('get', '/ajaxGet?id=0')
    .respond([{name: 'test1'}, {name: 'test2'}]);

  $httpBackend
    .when('post', '/ajaxPost', function (data) {
      console.log(data);
    })
    .respond({status: 'success'});

  // 调用测试代码
  Ajax.Get('/ajaxGet',
    //{name: 'data-123'},
    function (response, status) {
      responseData = response;
    },
    function (response) {
      console.log(response);
    });

// Ajax.Post('http://localhost:8080/ajaxPost',
// {data: 'test-data'},
// function () {},
// function () {});

  // 模拟响应
  $httpBackend.flush();

  // 核实结果
  //expect(responseData.length).toEqual(2);
  console.log(responseData);
});

});

报错
Error: Unexpected request: GET /ajaxGet
No more request expected

有谁知道应该怎么解决???
  • 写回答

1条回答 默认 最新

  • dugangandy 2015-11-30 06:27
    关注

    $httpBackend
    .when('get', '/ajaxGet?id=0')
    .respond([{name: 'test1'}, {name: 'test2'}]);

    修改为:
    
     $httpBackend
    .when('get', '/ajaxGet')
    .respond([{name: 'test1'}, {name: 'test2'}]);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体