gpt4 book ai didi

javascript - karma : TypeError: Cannot read property 'prototype' of undefined

转载 作者:行者123 更新时间:2023-12-02 14:26:27 25 4
gpt4 key购买 nike

每当我尝试注入(inject)我的服务时,我都会收到以下错误。

(function () {

describe('Test', function () {

var $scope, $state, service,ctrl;

beforeEach(function() {
module('moduleApp');

module(function($provide) {
$provide.service('AppService', service);
});

inject(function($rootScope,$injector,$controller,AppService) {
$scope = $rootScope.$new();
$state = $injector.get('$state');
service = $injector.get('AppService');
ctrl = $controller('MyCtrl', {
$scope: $scope,
$state: $state,
AppService: service
});
});
});


it('should have a working UserSession service', function() {
expect(service).to.exist;
});


});

}());

错误:

TypeError: Cannot read property 'prototype' of undefined
at Object.instantiate (bower_components/angular/angular.js:4577:82)
at Object.<anonymous> (bower_components/angular/angular.js:4438:24)
at Object.invoke (bower_components/angular/angular.js:4570:17)
at Object.enforcedReturnValue [as $get] (bower_components/angular/angular.js:4422:37)
at Object.invoke (bower_components/angular/angular.js:4570:17)
at bower_components/angular/angular.js:4387:37
at getService (bower_components/angular/angular.js:4529:39)
at Object.invoke (bower_components/angular/angular.js:4561:13)
at Context.workFn (bower_components/angular-mocks/angular-mocks.js:2524:20)
at window.inject.angular.mock.inject (bower_components/angular-mocks/angular-mocks.js:2496:37)
Error: Declaration Location
at window.inject.angular.mock.inject (bower_components/angular-mocks/angular-mocks.js:2489:25)
at Context.<anonymous> (test/unit/app/views/Test.js:17:13)

最佳答案

你想做什么?!首先,告诉 karma 使用 undefined object service 作为 AppService,然后尝试从注入(inject)器获取 AppService 并将其分配给 service ?这是一个循环。

如果被测单元是AppService,则不需要这样:

module(function($provide) {
$provide.service('AppService', service);
});

如果您需要该服务,您可以简单地执行以下操作:

inject(function($rootScope,$injector,$controller, _AppService_) {
$scope = $rootScope.$new();
$state = $injector.get('$state');
service = _AppService_;
ctrl = $controller('MyCtrl', {
$scope: $scope,
$state: $state,
AppService: service
});
});

如果被测单元依赖于AppService,您首先构建一个模拟服务,然后使用provide,并记住您不需要再次注入(inject)它。

关于javascript - karma : TypeError: Cannot read property 'prototype' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com