javascript - 如何使用 Jest 单元测试触发 transitionend
问题描述
我正在使用 angular 8 和 Jest 进行单元测试。我在元素上为“transitionend”添加了一个侦听器,但我无法弄清楚如何使用 Jest 触发/模拟 transitionend 事件
this.animatedElement.nativeElement.addEventListener('transitionend', () => {
this.transitionEnded = true;
});
我正在尝试创建一个测试this.transitionEnded
为真的单元测试
解决方案
使用此辅助函数触发任何事件:
function triggerTransitionEnd(element) {
let event = document.createEvent("Event");
event.initEvent("transitionend", true, true);
element.dispatchEvent(event);
}
然后在您的测试中像这样使用它:
test("Some description here", () => {
const popup = document.getElementById("popup");
triggerTransitionEnd(popup);
expect(popup.classList.contains("show")).toBeFalsy();
});
推荐阅读
- node.js - 谷歌oauth, Facebook
- python - 在 Jupyter 实验室中出现 OSError:[E050] 找不到模型“en_core_web_sm”。它似乎不是 Python 包或数据目录的有效路径
- python - ARIMA 预测太阳黑子
- pandas - matplotlib:在 Python 中为选择列制作饼图
- javascript - 存储和检索用户输入
- r - 不同长度的breaks和labels scale_size_binned
- javascript - 如何从常量中解析变量名?
- kubernetes - FATA [0004] 无法初始化项目:无法使用“base.go.kubebuilder.io/v3”搭建脚手架:退出状态 2
- android - 为自定义 tabList 视图添加 contentDescription
- jestjs - jest 是否支持代理外部脚本,例如