小编sta*_*ter的帖子

使用 jest 和 vue-test-utils 进行 Vue 测试无法解析通过 app.component() 引入的组件

我目前正在尝试向我的 Vue 3 Vite 应用程序引入测试。
我为此使用 jest 和 vue-test-utils 。
这工作正常,除了当我尝试安装包含我的基本组件的组件时,我在 app.mount("#app"); 之前用 app.component(basecomponent) 引入了它。在我的应用程序中。
当测试仍在运行时,我收到错误:

[Vue warn]: Failed to resolve component: base-card 
      at <Anonymous ref="VTU_COMPONENT" > 
      at <VTUROOT>
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,使其可供测试的最佳方法是什么?或者我做错了什么,因为这不起作用?
感谢您提前提供所有答案:)

vue.js jestjs vue-test-utils

10
推荐指数
1
解决办法
7421
查看次数

vue 3 vite 与 i18n 的国际化

我目前正在尝试使用“@intlify/vite-plugin-vue-i18n”国际化我的 vue 3 vite 项目。我在这里面临的问题是,我目前必须为每个组件导入并设置 t 变量才能使用它。
示例组件:

<template>
  t('translation')
</template>

<script>
import { useI18n } from 'vue-i18n'
export default {
  setup(){
    const {t} = useI18n();
    return {t}
  },
};
</script>
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果可能的话,使变量“t”全局化的最佳方法是什么?我找不到任何关于此的示例/帮助,因为它们都将其导入到每个组件中。所有帮助将不胜感激!:) 作为参考,这里是相关文件。

export default defineConfig({
  plugins: [
    vue(),
    vueI18n({
      include: path.resolve(__dirname, './src/locales/**')
    })
  ]
})
Run Code Online (Sandbox Code Playgroud)

主要.ts:

import i18n from './i18n';
const app = createApp(App);
app.use(i18n);
app.mount("#app");
Run Code Online (Sandbox Code Playgroud)

i18n.js:

import { createI18n } from 'vue-i18n'
import messages from '@intlify/vite-plugin-vue-i18n/messages'

export default createI18n({
  legacy: false,
  locale: 'no',
  messages
})
Run Code Online (Sandbox Code Playgroud)

vue.js vuex vue-i18n vuejs3 vite

8
推荐指数
2
解决办法
3万
查看次数

标签 统计

vue.js ×2

jestjs ×1

vite ×1

vue-i18n ×1

vue-test-utils ×1

vuejs3 ×1

vuex ×1