我有一个组件,当点击移动设备时,它会隐藏一个叠加层并显示描述(就像桌面上的悬停一样)。
到目前为止桌面版我一直在使用mouseenter
在我的组件上测试myElement.fire("mouseenter")
等鼠标事件:
test('it shows the description on hover', function() {
var actionCardOverlay = missionCard.querySelector('ct-action-card-overlay');
var actionCardDescription = missionCard.querySelector('ct-action-card-description');
actionCardOverlay.fire("mouseenter");
expect(actionCardDescription.hidden).to.equal(false);
});
但是,在尝试测试移动设备时,当我执行类似tap
的操作时,我的myElement.fire("tap")
事件看起来不像我的 suite('when user is using a mobile device', function() {
test('it shows the description on tap', function() {
var actionCardOverlay = missionCard.querySelector('ct-action-card-overlay');
var actionCardDescription = missionCard.querySelector('ct-action-card-description');
actionCardOverlay.fire("tap");
expect(actionCardDescription.hidden).to.equal(false);
});
test('it hides the overlay on tap', function() {
var actionCardOverlay = missionCard.querySelector('ct-action-card-overlay');
var actionCardDescription = missionCard.querySelector('ct-action-card-description');
actionCardOverlay.fire("tap");
expect(actionCardOverlay.hidden).to.equal(true);
});
});
:
"chai": "^3.2.0",
"mocha": "^2.2.5",
"sinon": "^1.15.4",
"sinon-chai": "^2.8.0",
"supertest": "^1.0.1",
"web-component-tester": "^3.4.2"
这是我在JSFiddle中的代码的简化版本。我还验证了该演示适用于移动设备:https://jsfiddle.net/Lnws78cb/1/
我会开什么事?换句话说,我如何模拟元素上的点按?
我正在使用这些测试框架:
Call
答案 0 :(得分:1)
您需要创建自定义事件实例
myElement.fire(new CustomEvent('tap'));