AngularJS - Jasmine - 无法在控制器回调函数中测试服务
创始人
2024-10-27 00:00:26
0

要在AngularJS控制器的回调函数中测试服务,可以使用Jasmine的spyOn方法来模拟服务的方法调用。下面是一个示例代码:

// 服务定义
app.service('myService', function() {
  this.getData = function() {
    // 实际的服务方法实现
    return "Hello World";
  }
});

// 控制器定义
app.controller('myController', function($scope, myService) {
  $scope.getDataFromService = function() {
    // 调用服务方法并将结果赋给$scope变量
    $scope.data = myService.getData();
  }
});

// Jasmine测试
describe('myController', function() {
  var $scope, myService, createController;

  beforeEach(module('myApp'));

  beforeEach(inject(function($rootScope, $controller, _myService_) {
    $scope = $rootScope.$new();
    myService = _myService_;

    // 创建控制器的辅助函数
    createController = function() {
      return $controller('myController', {
        $scope: $scope,
        myService: myService
      });
    };
  }));

  it('should get data from service', function() {
    // 模拟服务方法调用并返回一个固定的值
    spyOn(myService, 'getData').and.returnValue("Mocked Data");

    // 创建控制器并调用回调函数
    var controller = createController();
    $scope.getDataFromService();

    // 断言$scope变量是否正确赋值
    expect($scope.data).toEqual("Mocked Data");
    expect(myService.getData).toHaveBeenCalled();
  });
});

在测试中,使用spyOn方法模拟myService的getData方法调用,并使用and.returnValue来指定返回的固定值。然后,创建控制器并调用回调函数,最后断言$scope变量是否正确赋值,并且myService的getData方法是否被调用。

相关内容

热门资讯

七分钟辅助!丽水茶苑苹果手机辅... 七分钟辅助!丽水茶苑苹果手机辅助,本来是真的有辅助教程(有挂方式)1、实时丽水茶苑苹果手机辅助透视辅...
第一分钟辅助!闲来辅助神器下载... 第一分钟辅助!闲来辅助神器下载2022,好像真的有辅助方法(有挂教程)1、不需要AI权限,帮助你快速...
九分钟辅助!丽水都莱辅助工具试... 九分钟辅助!丽水都莱辅助工具试用,确实存在有辅助神器(有挂方法)九分钟辅助!丽水都莱辅助工具试用,确...
第一分钟辅助!蛮王辅助器,好像... 第一分钟辅助!蛮王辅助器,好像是有辅助方法(有挂教学)1、首先打开蛮王辅助器辅助器下载最新版本,在蛮...
第六分钟辅助!潮汕汇挂,一贯真... 第六分钟辅助!潮汕汇挂,一贯真的是有辅助插件(有挂辅助)1、这是跨平台的潮汕汇挂轻量版有透视,在线的...
六分钟辅助!微信开心泉州辅助器... 六分钟辅助!微信开心泉州辅助器,一直有辅助器(有挂教学)1、下载好微信开心泉州辅助器透视辅助下载之后...
第3分钟辅助!佛手十三道破解版... 第3分钟辅助!佛手十三道破解版安卓,竟然真的有辅助攻略(有挂存在)1、让任何用户在无需佛手十三道破解...
2分钟辅助!sohoo竞技联盟... 2分钟辅助!sohoo竞技联盟辅助,切实真的有辅助脚本(有挂技术)1.sohoo竞技联盟辅助 选牌创...
第8分钟辅助!心悦手游辅助器,... 第8分钟辅助!心悦手游辅助器,原来真的是有辅助技巧(确实有挂);1、每一步都需要思考,不同水平的挑战...
第十分钟辅助!广东雀神祈福真的... 第十分钟辅助!广东雀神祈福真的有用吗,都是是有辅助技巧(有挂方略)1、下载好广东雀神祈福真的有用吗透...