这很可能是我不知道如何使用 Karma。假设我有一个像这样的 angularJS 样板测试
'使用严格'; describe('Controller: MainCtrl', function () { // 加载控制器模块 beforeEach(module('testingApp')); var MainCtrl, 范围; // 初始化控制器和模拟范围 beforeEach(inject(function ($controller) { 范围 = {}; MainCtrl = $controller('MainCtrl', { $范围:范围 }); })); it('应该将 awesomeThings 列表附加到范围', function () { 期望(范围.awesomeThings.length).toBe(3); }); });
如果我像这样在我的控制器中插入一个 $emit
'使用严格'; angular.module('testingApp') .controller('MainCtrl', function ($scope) { $scope.awesomeThings = [ 'HTML5 样板', 'AngularJS', '业力' ]; $scope.$emit('helloWorld'); });
我的测试现在失败并说
TypeError: Object # has no method '$emit'任何帮助深表感谢!