微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我试图单元测试控制器代码一个模块,需要其他模块作为依赖,但没有能够弄清楚如何正确模拟它们。

我使用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提出的解决方案很好,但是您不能为角度表模块创建单元测试。

原文地址:https://www.jb51.cc/javaschema/282950.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐