【发布时间】:2013-10-03 15:12:50
【问题描述】:
我正在尝试测试控制器,但出现错误
TypeError: Object # has no method 'apply' ReferenceError: 注入未定义
unit-test.js 是
define(['angular',
'myApp',
'angularMocks',
'MyCtrl'
], function() {
describe('Testing controller', function() {
var $scope = null;
var ctrl = null;
beforeEach(angular.module('myApp'));
beforeEach(inject(function ($injector) {
$scope = $injector.get('$rootScope');
$controller = $injector.get('$controller');
}));
describe('MyCtrl', function () {
it('should call test variable', function () {
$scope = $rootScope.$new();
ctrl = $controller('MyCtrl', {
$scope: $scope
});
expect($scope.test).toBe("sth");
});
});
});
});
在 MyCtrl 中我声明了一个 $scope.test = "sth";
当我改变时
beforeEach(angular.module('myApp')); 到 beforeEach(module('myApp'));
我收到ReferenceError: module is not defined
我使用 Karma 版本:0.9.8 和 AngularJS v1.0.8
非常感谢!
【问题讨论】:
-
看来你在使用 requirejs ?如果是,我可以发布一个回答并告诉你如何为 karma 实现 require.js 的配置
-
是的,我确实使用了 requirejs,但我认为这两个文件(karma.conf.js 和 test-main.js)都是正确的。
-
我已经在您的测试文件上发布了完整配置和修改的答案
标签: unit-testing angularjs jasmine karma-runner