Jasmine jquery - 监视具有数据属性的事件
jasmine jquery - spy on event with data attribute
如果正确触发以下事件,我在寻找使用 jasmine-jquery 进行测试的正确方法时遇到了一些麻烦
$(document).on('click', '[data-test]', function(e) {
...
});
基本上我想写 2 个看起来有点像这样的测试(所有?????部分对我来说都是一个谜):
spyOnEvent(?????????????, 'click');
var fixture = setFixtures('<a data-test="whatever"></a> <a class="dummy"></a>');
var $elem = fixture.find('a[data-test="whatever"]');
var $dummy = fixture.find('.dummy');
it('should be triggered', function() {
$elem.click();
expect('click').toHaveBeenTriggeredOn(?????);
});
it('should not be triggered', function() {
$dummy.click();
expect('click').not.toHaveBeenTriggeredOn(?????);
});
希望有人可以帮助我解决这个问题=)干杯
问题是,在这两种情况下toHaveBeenTriggeredOn
都是正确的,因为您在测试中触发了点击。这也不是您要测试的。您应该测试是否已触发单击处理程序。通常,这将通过测试单击处理程序函数的结果来完成。例如,类已更改。
$(document).on('click', '[data-test]', function(e) {
$(this).addClass('test')
});
var fixture = setFixtures('<a data-test="whatever"></a> <a class="dummy"></a>');
var $elem = fixture.find('a[data-test="whatever"]');
var $dummy = fixture.find('.dummy');
it('should be triggered', function() {
$elem.click();
expect($elem.hasClass()). toBeTruthy();
});
it('should not be triggered', function() {
$dummy.click();
expect(dummy.hasClass()).toBeFalsy();
});
相关文章:
- 序列化数据属性中对象的最可靠方法
- jQuery最近父级的数据属性选择器
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 数据属性仅在切换设备模式下工作
- 函数jquery.html()不提供数据属性集值
- 在数据属性上进行下拉自动选择
- JavaScript-获取数据属性的值返回未定义的值
- 如何替换数据属性中的特定字符串单词
- 使用自定义数据属性或将数据绑定到处理程序来处理事件
- 获取 html 元素的点击事件的数据-* 属性
- Meteor.js:如何检索事件对象的父元素的数据属性
- Jasmine jquery - 监视具有数据属性的事件
- 将点击事件添加到TH伪元素,从TH获取数据属性,防止点击时触发TH事件
- 从事件内联中获取html5数据属性
- 在contentteditable更改事件的P标记中插入数据属性
- 数据属性没有更新,onclick事件仍然在上面
- 在onchange事件中使用html中的自定义数据属性
- 获取点击事件上的纸质复选框的数据属性
- 从事件中获取数据属性
- 从流星事件中检索自定义数据属性的最佳方式