这很可能是我不知道如何使用 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'任何帮助深表感谢!