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

前端之家收集整理的这篇文章主要介绍了单元测试 – 模拟在茉莉花单元测试中的角模块依赖前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图单元测试控制器代码在一个模块,需要其他模块作为依赖,但没有能够弄清楚如何正确模拟它们。

我使用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.f2er.com/javaschema/282950.html

猜你在找的设计模式相关文章