首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用全局变量测试Vue可组合

用全局变量测试Vue可组合
EN

Stack Overflow用户
提问于 2022-02-16 12:30:08
回答 1查看 723关注 0票数 0

我使用Vue可组合返回一个序列号,用于为组件生成一个唯一的ID,例如,对于aria-控件。

代码语言:javascript
复制
/** Composable to return a sequential number */
import { onMounted, ref } from '@vue/composition-api'

/** Define a starting integer */
const globalItemNumber = ref(0)

/**
 * Increment and return the global item number
 */
export function useSequentialNumber() {
    const localItemNumber = ref(0)

    onMounted(() => (localItemNumber.value = globalItemNumber.value++))

    return { itemNumber: localItemNumber }
}

我已经为这个脚本编写了一个测试,但是当我运行它时,我会得到以下错误:

代码语言:javascript
复制
 ● Test suite failed to run
@serenity-web/common-helpers:     [vue-composition-api] must call Vue.use(VueCompositionAPI) before using any function.
@serenity-web/common-helpers:       3 |
@serenity-web/common-helpers:       4 | /** Define a starting integer */
@serenity-web/common-helpers:     > 5 | const globalItemNumber = ref(0)

我该如何解决这个问题?最好是将全局变量抽象到可组合的外部,还是在测试脚本中有一种模拟它的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-16 13:25:04

这个问题是针对Vue 2的,在Vue 2中,通过@vue/composition-api插件可以获得复合API。错误的意思是,在使用复合API之前,必须执行Vue.use(VueCompositionAPI)

这可能在应用程序本身也是一样的,但可能需要在测试中以特殊的方式对待它。这需要模块:

代码语言:javascript
复制
Vue.use(VueCompositionAPI);

并在导入之前导入它,特别是在导入时使用组合API的模块( setup函数外):

代码语言:javascript
复制
import '.../composition-plugin';
...

这需要对应用程序入口点和测试进行。这可以在setupFiles中的所有测试套件中完成一次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71141907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档