vuex 中使用的开玩笑的全局函数

问题描述

在 Jest 中有什么方法可以模拟插件中声明的全局函数吗? 我使用注入声明名为 reqApi 的全局函数,并通过 $reqApi 在商店中使用它 现在,当我使用 jest 测试我的组件时出现此错误

TypeError: this.$reqApi is not a function

  210 |   isUserExist({ },{ email }) {
  211 |     return new Promise((resolve,reject) => {
> 212 |       this.$reqApi("/express-customer/is-user-exist/",{
      |            ^
  213 |         email
  214 |       }).then(res => {
  215 |         resolve(res)

这是我在插件中声明的全局函数

  inject('reqApi',(url,data = {},method = "POST",config = {},getonlyData = true) => {
    if (method == "POST") {
        return new Promise((resolve,reject) => {
            $axios.$post(url,data,config)
                .then((response) => {
                    if (response) {
                        resolve(response)
                    } else {
                        // store.dispatch('addNotification',{
                        //   message: errorMessage
                        // })
                        reject()
                    }
                    return
                })
                .catch((error) => {
                    // console.log(error);

                    // store.dispatch('addNotification',{
                    //   message: errorMessage
                    // })
                    reject(error)
                })
        })
    } else if (method == "GET") {
        return new Promise((resolve,reject) => {
            $axios.$get(url)
                .then((response) => {
                    if (response) {
                        resolve(response)
                    } else {
                        // store.dispatch('addNotification',{
                        //   message: errorMessage
                        // })
                        reject()
                    }
                    return
                })
                .catch((error) => {
                    // console.log(error);
                    // store.dispatch('addNotification',{
                    //   message: errorMessage
                    // })
                    reject(error)
                })
        })
    } else if (method == "PUT") {
        return new Promise((resolve,reject) => {
            $axios.$put(url,data)
                .then((response) => {
                    if (response) {
                        resolve(response)
                    } else {
                        // store.dispatch('addNotification',{
                        //   message: errorMessage
                        // })
                        reject()
                    }
                    return
                })
                .catch((error) => {
                    reject(error)
                })
        })
    } else {
        return new Promise((resolve,reject) => {
            $axios.$delete(url,{ data: data })
                .then((response) => {
                    if (response) {
                        resolve(response)
                    } else {
                        // store.dispatch('addNotification',{
                        //   message: errorMessage
                        // })
                        reject()
                    }
                    return
                })
                .catch((error) => {
                    reject(error)
                })
        })
    }
})

这是我在 vuex 中的操作,我用它来访问名为 $reqApi 的全局函数

  isUserExist({ },{ email }) {
return new Promise((resolve,reject) => {
  this.$reqApi("/express-customer/is-user-exist/",{
    email
  }).then(res => {
    resolve(res)
  })
    .catch(error => reject(error))
})

},

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)