我正在与Jest一起对我的Vue.JS项目进行单元测试。在我的组件中,我需要测试的两种方法是从另一个组件的结果中检索数据。我可以以某种方式模拟结果数据吗?我该怎么办?
在下面的示例中,this.$refs.change.open()
引用了另一个组件-对话框打开并且我们输入信息后,单击“保存”,然后我们收到结果。我们收到的结果是模拟用户的全名和用户ID。
async impersonation() {
const result = await this.$refs.change.open();
if (result !== false) {
let impersonatedId = result[0].value;
const request = {
data: {
user_id: impersonatedId
},
params: {
user_id: this.user_id
}
};
this.isImpersonated = true;
const response = await this.updateImpersonation(request);
if (response) {
localStorage.setItem("impersonated?",response.data.fullname);
}
this.$refs.loader.hide();
const impersonatedFullName = this.selectedRows[0].first_name + " " + this.selectedRows[0].last_name;
EventBus.$emit("impersonatedFullName", impersonatedFullName);
}
是否可以模拟结果?如果是这样,我该怎么做?我可以模拟open函数,并测试单击时是否已调用它,但是如何测试其余的模拟方法呢?
谢谢