如何在Angular指令的Jasmine单元测试中触发一个click事件?
How do I trigger a click event in a Jasmine unit test for an Angular Directive?
在我的指令的link
函数:
$document.on('click.sortColumnList', function () {
viewToggleController.closeSortColumnList();
scope.$apply();
});
在Jasmine单元测试中:
describe('document click', function () {
beforeEach(function () {
this.$document.triggerHandler('click.sortColumnList');
});
it('should tell the controller to close the sort column list', function () {
expect(this.ctrlMock.closeSortColumnList).toHaveBeenCalled();
});
it('should trigger a digest cycle', function () {
expect(this.$scope.$apply).toHaveBeenCalled();
});
});
这实际上并没有触发事件侦听器。
测试失败 Expected spy closeSortColumnList to have been called.
间谍设置正确,问题是事件侦听器没有触发。
在Jasmine Angular单元测试中,你需要做什么来触发$document
上的事件?
您可能需要将jasmine-jquery添加到您的项目中,它们具有特定的功能来完成您需要的功能。使用此命令,您可以执行如下操作:
var spyEvent = spyOnEvent('#some_element', 'click')
$('#some_element').click()
expect('click').toHaveBeenTriggeredOn('#some_element')
相关文章:
- React应用程序:道具在下一个事件后更新
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 全局屏幕span onclick触发一个事件javascript
- 在一个“事件”之后触发一个事件;喜欢“;
- 在离子2中,有任何方法可以将涡旋动量作为一个事件来检测
- 完整日历在多个资源上添加一个事件
- TinyMCE 将另一个事件添加到粗体和斜体按钮
- jQuery触发另一个事件中的事件
- 试图使一个事件依赖于另一个事件,并使用jquery自定义事件传递数据
- 存储一个事件处理程序中的变量以供另一个事件处理器使用
- 当表单验证失败时,我将如何最好地处理下一个事件
- 正在创建一个事件以更改鼠标悬停时的图片
- 当一个单元格被编辑时,是否有一个事件触发,但值没有'不要改变
- JavaScript一次性在多个元素上注册一个事件类型
- 如何在点击时发生另一个事件后使用localscroll
- Vanilla Js:在一个事件中开始一段时间的循环,然后用第二个事件打破它?('mouseover'启
- 取消除最后一个事件之外的所有事件,
- 鼠标滚轮按压-描述了一个事件的名称,以及如何使用jQuery侦听它
- Javascript开始处理下一个事件,然后第一次完成
- 在Jquery中将标志从一个事件传递到另一个事件