angular.mock.inject beforeEhe?

时间:2015-12-17 23:32:44

标签: javascript angularjs unit-testing

如何在beforeEach块之外使用angular.mock.inject?

我正在尝试使用我们应用程序服务的所有模拟设置一个文件,这些模拟中的方法将是茉莉花间谍,它将返回带有空对象的promise。这是mockService.js

define(['angular','angular.mocks'], function () {

    return {
        UserService: {
            read: jasmine.createSpy('UserService.read()')
        }
    }
});

为了遵循DRY原则,我将这些模拟定义为require.js模块,我的spec文件将需要此模块。这是UsersController.spec.js

define([

    'angular',
    'mockServices',
    'angular.mocks',
    'app/app.module'
]

但是,我无法让mockServices.UserService.read回复这样的承诺:

UserService: {
    read: jasmine.createSpy('TokensService.read()').and.callFake(function() {

        var deferred = $q.defer();

        deferred.resolve({});
        return deferred.promise;
    })
}

因为$ q未定义。我在beforeEach块中使用了angular.mock.inject来访问$ q。

我已经尝试过IIFE注入返回的函数,我得到一个提到currentSpec。$ modules的错误,但我不知道那是什么。

如何在每个人之前访问$ q?

0 个答案:

没有答案