Я хочу протестировать компонент vuejs, где я вызовите vue-i18n $t()
для перевода мои тексты и this.$route.name
.
Созданный мной тест прошел успешно, но со множеством ERROR LOG
:
ЖУРНАЛ ОШИБОК: '[Предупреждение Vue]: Ошибка в функции рендеринга: "Ошибка типа: undefined не является функцией (оценка' _vm. $ T ('contact') ')"
ЖУРНАЛ ОШИБОК: '[Предупреждение Vue]: Ошибка в смонтированном хуке: «TypeError: undefined не является объектом (оценка' this. $ Route.name ')»
Вот мой main.js
import Vue from 'vue';
import VueI18n from 'vue-i18n'
import router from './router';
import messages from './messages';
Vue.use(VueI18n);
const i18n = new VueI18n({
fallbackLocale: 'fr',
locale: 'fr',
messages,
});
Vue.config.productionTip = false
let vm = new Vue({
el: '#app',
i18n,
router,
});
// Once page is reloaded
i18n.locale = vm.$route.params.locale;
А вот и мой тест: MyComponent.spec.js
describe('MyComponent', () => {
// other tests on the object MyComponent (not its instance)
// Mount an instance and inspect the render output
it('renders the correct message', () => {
const Ctor = Vue.extend(MyComponent);
const vm = new Ctor().$mount();
});
});
Когда я пытаюсь ввести i18n
:
import VueI18n from 'vue-i18n'
const vm = new Ctor(new VueI18n({fallbackLocale: 'fr', locale: 'fr', messages,})).$mount();
Я получаю эту ошибку
PhantomJS 2.1.1 (Linux 0.0.0) ERROR TypeError: undefined не является объектом (оценка 'Vue.config')
package.json
"dependencies": {
...
"vue": "^2.3.3",
"vue-i18n": "^7.1.1",
"vue-router": "^2.6.0"
},
"devDependencies": {
....,
"chai": "^3.5.0",
"karma": "^1.4.1",
"karma-coverage": "^1.1.1",
"karma-mocha": "^1.3.0",
"karma-phantomjs-launcher": "^1.0.2",
"karma-phantomjs-shim": "^1.4.0",
"karma-sinon-chai": "^1.3.1",
"karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.31",
"karma-webpack": "^2.0.2",
"sinon": "^2.1.0",
"sinon-chai": "^2.8.0",
"phantomjs-prebuilt": "^2.1.14",
"mocha": "^3.2.0",
}