2

我一直在尝试通过注入模拟依赖项来使用 Mocha对一些 Angular js 服务进行单元测试。我已经阅读了很多关于此的内容,并且有人建议使用angular-mocks的 master 分支应该可以与 mocha 一起正常工作。但是,当我尝试这个时,我得到以下 javascript 错误,并且未定义“注入”和“模块”函数:

ReferenceError: beforeEach is not defined

我也尝试过使用 angular.injector,这让我取得了一些成功,但是,我无法模拟我的服务所依赖的服务(在本例中为 $http)。我的服务:

var app = angular.module('app', ['ui.bootstrap'], function($provide){
    $provide.factory('myService', ['$http', function($http){
        return { 
            doSomething: function(batch){
                ...
            }
        };
    }]);
});

解决:

$injector = angular.injector(['ng', 'app']);
var subject = $injector.get('myService');

不使用茉莉花这可能吗?

4

1 回答 1

0

所有 AngularJS 版本 < 1.2.0 附带的 angular-mocks 与 mocha 不兼容。请改用 angular-mocks 的凉亭版本:https ://github.com/angular/bower-angular-mocks

于 2013-11-09T10:06:24.217 回答