将 $event 传递给单元测试用例 mocha
passing $event to unit test case mocha
我有一个方法 init
我的 controller
如下所示,我该如何测试它:
vm.init = function ($event) {
var target = angular.element($event.target);
if(target.prop('tagName').toUpperCase() == 'A') {
return false;
}
};
测试规范
beforeEach(function(){
vm.init = sinon.spy();
compiled = $compile(template)($scope);
$scope.$digest();
mockEvent = new Event('click');
sinon.spy(mockEvent, 'preventDefault');
});
it('init() method should return false', function() {
vm.init(mockEvent);
});
TypeError: Cannot read property 'target' of undefined
如何在此处传递 $event
,下面是触发事件的 html。
template = '<div id="fre"><span ng-click="init($event)"></span></div>';
您可以模拟 $event
创建一个目标 属性 设置为任何 HTML 字符串的对象。
it('init() method should return false', function() {
var mockEvent = {
target: '<a href="#">Click</a>'
};
expect(controller.init(mockEvent)).toBe(false)
});
我有一个方法 init
我的 controller
如下所示,我该如何测试它:
vm.init = function ($event) {
var target = angular.element($event.target);
if(target.prop('tagName').toUpperCase() == 'A') {
return false;
}
};
测试规范
beforeEach(function(){
vm.init = sinon.spy();
compiled = $compile(template)($scope);
$scope.$digest();
mockEvent = new Event('click');
sinon.spy(mockEvent, 'preventDefault');
});
it('init() method should return false', function() {
vm.init(mockEvent);
});
TypeError: Cannot read property 'target' of undefined
如何在此处传递 $event
,下面是触发事件的 html。
template = '<div id="fre"><span ng-click="init($event)"></span></div>';
您可以模拟 $event
创建一个目标 属性 设置为任何 HTML 字符串的对象。
it('init() method should return false', function() {
var mockEvent = {
target: '<a href="#">Click</a>'
};
expect(controller.init(mockEvent)).toBe(false)
});