javascript - Vue.js 和 Jest - Element-UI 如何以编程方式确认 MessageBox?
问题描述
我目前正在使用 Jest 创建测试,我想知道如何以编程方式确认 ElementUI 的 MessageBox,因为我似乎无法获得它的 HTML DOM。这样它就会在里面执行我的 graphql 查询then()
。我真的不知道这是否是一个好习惯,因为我是 Jest 的新手。
confirmBox(
this,
'warning',
'Delete Record',
'Do you really want to delete this record?',
true
).then(() => {
this.loading = true
deleteGame(id, (response, success) => {
if (success) {
this.$message({
message: 'Record successfully deleted',
type: 'success'
})
this.get()
} else {
this.$message({
message: response,
dangerouslyUseHTMLString: true,
type: 'error'
})
this.loading = false
}
})
})
解决方案
Element-ui 对所有组件都有单元测试,但是它们是用 karma 编写的。
他们似乎触发了 Ok 按钮,如下所示:
it('confirm', done => {
MessageBox.confirm('This is a piece of content', {
title: 'Title name',
type: 'warning'
});
setTimeout(() => {
document.querySelector('.el-message-box__wrapper')
.querySelector('.el-button--primary').click();
expect(document.querySelector('.el-message-box__wrapper')
.__vue__.$parent.visible).to.false;
done();
}, 200);
});
完整来源:https ://github.com/ElemeFE/element/blob/dev/test/unit/specs/message-box.spec.js
推荐阅读
- google-cloud-bigtable - 间歇性错误:java.io.IOException:无法提前阅读源:BigtableSource{config=BigtableConfig{projectId=
- excel - autofilter not including all rows when filtering using vba
- reactjs - Jest 测试文件未从 .env.test 读取 env 变量
- python - setattr / getattr / self.__dict__ 是否接受通常不允许的属性名称?
- python - 带有 Python 的 UDP 套接字
- python - 带有时间偏移 Pandas 的滚动平均值
- java - 在 Java 的模板提案中代表什么不同的颜色和符号?
- nosql - RavenDB 替代以减少预算
- arrays - Mongoose Model, cleaning/parsing an Array efficiently
- cmake - What is the proper way to document a CMake module?