Я настраиваю тестовую среду для существующего проекта Vue и решил пошутить с помощью vue-test-utils.
Все установлено и на месте, однако, когда я импортирую компонент, я хочу протестировать его в файле .test.js и добавить компонент в тестовые утилиты следующим образом:
let wrapper = shallow(Home)
набор тестов вылетает с ошибкой: TypeError: Cannot read property 'i18next' of undefined
.
Я решил издеваться над модулем i18next, но у меня проблемы с издевательством. Мой макет выглядел так:
jest.mock('i18next', () => ({
init: () => {},
use: () => {},
t: k => k
}));
но я всегда получаю ошибку:
TypeError: Cannot read property 'init' of undefined
35 |
36 | i18next
> 37 | .use(Locize)
38 | .init(i18nextOptions);
39 |
40 | export default new VueI18Next(i18next);
Можете как-то объяснить, как правильно издеваться над модулем i18next, чтобы мой объект-оболочка мог инициализироваться? Также, если я делаю что-то еще не так, укажите мне правильное направление. Ниже приведен полный тестовый пример:
import { shallow, mount, createLocalVue } from '@vue/test-utils';
import Home from '../../src/app/pages/home/index/index.vue';
jest.mock('i18next', () => ({
init: () => {},
use: () => {},
t: k => k
}));
describe('Home Component', () => {
let wrapper;
beforeEach(() => {
wrapper = shallow(Home);
});
it('something', () => {
console.log('bleh');
expect(wrapper.contains('div')).toBe(true);
});
});
Спасибо.