gpt4 book ai didi

vue.js - 如何对使用 nuxt-i18n 的 Vue.js 组件进行单元测试

转载 作者:行者123 更新时间:2023-12-02 03:22:02 27 4
gpt4 key购买 nike

如果我尝试运行下面的内容(使用 yarn run jest),我会得到 TypeError: _vm.$t is not a function,因为 SearchField 正在使用翻译 ("$t('search')")。

import { mount } from "@vue/test-utils";
import SearchField from "@/components/ui/SearchField";

describe("SearchField", () => {
const wrapper = mount(SearchField);

it("renders correctly", () => {
expect(wrapper.element).toMatchSnapshot();
});
});

如果我在开头添加以下三行,则会收到 TypeError: Cannot read property '_t' of undefined

import Vue from "vue";
import VueI18n from "vue-i18n";
Vue.use(VueI18n);

最佳答案

nuxt-i18n 是一个外部库,而不是您自己的代码,因此测试良好实践要求我们仅模拟翻译库及其所需的函数(在本例中为 $t)。

以下代码应该可以解决您的问题:

describe("SearchField", () => {
const wrapper = mount(SearchField);

it("renders correctly", () => {
mocks: {
$t: (msg) => msg
}
expect(wrapper.element).toMatchSnapshot();
});
});

有关此方法的更多信息,请访问 here .

关于vue.js - 如何对使用 nuxt-i18n 的 Vue.js 组件进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54481326/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com