未知错误:javascript错误:[$injector:unp]未知提供程序

UnknownError: javascript error: [$injector:unpr] Unknown provider

本文关键字:错误 未知 程序 javascript injector unp      更新时间:2023-09-26

试图为我的angular应用程序创建量角器测试,这是我试图从Jasmine脚本调用的服务:

var app =angular.module('app',[]);
app.factory('myService', function($http) {
        var myService = {
            async: function() {
                // $http returns a promise, which has a then function, which also returns a promise
                var promise = $http.get('test.json').then(function (response) {
                    // The then function here is an opportunity to modify the response
                    console.log(response);
                    // The return value gets picked up by the then in the controller.
                    return response.data;
                });
                // Return the promise to the controller
                return promise;
            }
        };
        return myService;
    });
;

我的规范是这样定义的:

it('should call api i the site', function () {
    browser.executeAsyncScript(function(callback) {
    var callback = arguments[arguments.length - 1];
    var myService = angular.injector(['ng']).get('myService');
    myService.async().then(function (d) {
            $scope.data = d;
    });
    callback(null, true);
    });
})

当我运行脚本时,包含angular.injector(['ng']).get('myService')的行会导致以下错误:

UnknownError: javascript error: [$injector:unpr] Unknown provider: myServiceProvider <- myService

正确的注入器语句是什么?

试试这个,

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