【发布时间】:2015-10-12 08:11:23
【问题描述】:
我正在测试一个包含
的控制器$document.on('click', $scope.$apply.bind($scope, $scope.deactivate));
当我使用 Jasmine & Karma 测试这个控制器时
'use strict';
describe('controllers: ArrayCtrl', function() {
var scope;
beforeEach(module('ironridge'));
beforeEach(inject(function($controller,$rootScope) {
scope = $rootScope.$new();
$controller('ArrayCtrl', {
$scope: scope
});
}));
it('test section ', inject(function($controller) {
expect(scope.pannels.length).toBe(0);
}));
});
我收到以下错误:
PhantomJS 1.9.8 (Linux 0.0.0) 控制器:ArrayCtrl 应位于引用部分失败 TypeError: 'undefined' 不是函数(评估 '$scope.$apply.bind($scope, $scope.deactivate)') 不明确的 在/home/hpro/ironridge/src/app/components/array/array.controller.js:183 在调用 (/home/hpro/ironridge/bower_components/angular/angular.js:4219) 在实例化(/home/hpro/ironridge/bower_components/angular/angular.js:4227) 在/home/hpro/ironridge/bower_components/angular/angular.js:8533 在/home/hpro/ironridge/bower_components/angular-mocks/angular-mocks.js:1878 在/home/hpro/ironridge/src/app/components/array/array.controller.spec.js:11 在调用 (/home/hpro/ironridge/bower_components/angular/angular.js:4219) 在 workFn (/home/hpro/ironridge/bower_components/angular-mocks/angular-mocks.js:2437) TypeError:“未定义”不是对象(评估“scope.pannels.length”) 不明确的 在/home/hpro/ironridge/src/app/components/array/array.controller.spec.js:17 在调用 (/home/hpro/ironridge/bower_components/angular/angular.js:4219) 在 workFn (/home/hpro/ironridge/bower_components/angular-mocks/angular-mocks.js:2437)
请帮忙
【问题讨论】:
-
你能粘贴你的控制器代码吗?
-
@MathewBerg 这是控制器代码pastebin.com/Lz8AnREE
标签: javascript angularjs angularjs-scope karma-jasmine