首页 > 解决方案 > 如何使用 jest 测试作为参数传递给 vue.js 中调度操作的输入?

问题描述

我有一个列表,我在其中选择数据源并将选定的数据源存储在 selectedDataSourcesArray 中。当我单击提交按钮时,将调用以下函数。

async addAnalysisToDB() {
      this.loading = true
      const sources = []

      for (let i = 0; i < this.selectedDataSourcesArray.length; i++) {
        sources.push({
          type: this.selectedDataSourcesArray[i].type,
          attributes: this.selectedDataSourcesArray[i].attributes,
        })
      }
      try {
        const payload = {
          projectId: this.selectedProjectId,
          dataSources: sources,
        }
        await this.$store.dispatch("startAnalysis", payload)
      } catch (exception) {
        console.error(exception)
        this.loading = false
        this.errorDialog = true
        return
      }
      this.loading = false
      this.successDialog = true
      this.rerenderList()
    },

我想做的是创建一个名为 privateProjects.spec.js 的测试文件,并使用 jest 测试 addAnalysisToDB() 函数。

我想在测试文件中设置 selectedDataSourcesArray 的内容,并通过比较测试文件中创建的 expectedPayload 来检查有效负载的内容。

像这样的东西:

selectedDataSourcesArray = someArray
expectedPayload = object

expect(payload).toEqual(expectedPayload)

模板中的按钮格式如下

<v-btn
                :loading="loading"
                :disabled="!selectedDataSourcesArray.length"
                color="primary"
                @click="addAnalysisToDB"
              >
                Create Analysis
              </v-btn>

标签: vue.jsjestjs

解决方案


推荐阅读