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

单元测试 – 模拟在茉莉花单元测试中的角模块依赖

发布时间:2020-12-14 01:20:00 所属栏目:百科 来源:网络整理
导读:我试图单元测试控制器代码在一个模块,需要其他模块作为依赖,但没有能够弄清楚如何正确模拟它们。 我使用Jasmine框架和运行我的测试与Karma(Testacular)。 模块代码 var app = angular.module('events',['af.widgets','angular-table']);app.controller('ev
我试图单元测试控制器代码在一个模块,需要其他模块作为依赖,但没有能够弄清楚如何正确模拟它们。

我使用Jasmine框架和运行我的测试与Karma(Testacular)。

模块代码

var app = angular.module('events',['af.widgets','angular-table']);

app.controller('eventsCtrl',function([dependencies]){
    $scope.events = [];
    ...
});

规格代码

describe('events module',function(){
    var $scope,ctrl;

    beforeEach(function(){
        angular.mock.module('af.widgets',[]);
        angular.mock.module('angular-table',[]);
        module('events','angular-table']);
    });

    beforeEach(inject(function($rootScope,$controller){
        $scope = $rootScope.new();
        ctrl = $controller('NameCtrl',{
            $scope: $scope,});
    }));

    it('should have an empty events array',function(){
        expect($scope.events).toBe([]);
    })
});

我得到的错误是Karma是“没有模块af.widgets”,所以显然我不是模拟依赖模块的权利。任何提示?

如果你想模拟一个声明一个或多个服务的模块,我使用了这个代码:
beforeEach(function(){
    module('moduleToMock');
    module(function ($provide) {
        $provide.value('yourService',serviceMock);
    });
});

如果你想要模拟的服务也是你想要单元测试的服务(在另一个茉莉花描述),这是有用的。fscof提出的解决方案很好,但是您不能为角度表模块创建单元测试。

(编辑:李大同)

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

    推荐文章
      热点阅读