如何测试异步函数的结果-单元测试-Vue,Jest

时间:2020-01-09 18:07:28

标签: javascript unit-testing vue.js

我正在与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函数,并测试单击时是否已调用它,但是如何测试其余的模拟方法呢?

谢谢

0 个答案:

没有答案