반응형
농담으로 i18 다음 모듈을 조롱하는 방법
나는 기존 Vue 프로젝트의 테스트 환경을 설정하고 vue-test-utilities와 농담을 하기로 결정했다.
모든 것이 설치되고 제자리에 있지만, 구성 요소를 가져올 때 .test.js 파일에서 테스트하고 구성 요소를 다음과 같이 테스트 유틸리티에 추가하고자 한다.
let wrapper = shallow(Home)
테스트 제품군이 충돌하고 오류가 발생함:TypeError: Cannot read property 'i18next' of undefined
.
i18 next module을 조롱하기로 결심했지만 조롱하는 데 문제가 있다.내 조롱은 다음과 같이 보였다.
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);
내 포장지 객체가 초기화될 수 있도록 i18 다음 모듈을 조롱하는 적절한 방법을 설명할 수 있는가?또한 내가 다른 잘못을 저지르고 있다면 올바른 방향으로 나를 가리켜줘.다음은 전체 테스트 사례:
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);
});
});
고마워요.
에러Cannot read property 'init' of undefined
의 결과로 일어나다i18next.use(Locize)
에 관한 것이i18next
반대하다모의실험을 다음으로 업데이트해 보십시오.
jest.mock('i18next', () => ({
use: () => {
init: () => {
t: k => k,
on: () => {}
}
}
}));
이 모의실험에 대한 참고자료로 이 파일을 사용했다: panter/vue-i18next/src/i18n.js
참조URL: https://stackoverflow.com/questions/48789110/how-to-mock-i18next-module-in-jest
반응형
'IT이야기' 카테고리의 다른 글
구성 요소를 렌더링하기 전에 Vuex 상태가 로드되었는지 확인하십시오. (0) | 2022.04.13 |
---|---|
Vue.js 애니메이션이 올바르게 작동하지 않음 (0) | 2022.04.13 |
Vue.js에서 v-on과 같은 사용자 지정 지시어를 생성하는 방법 (0) | 2022.04.12 |
Vue에 제공된 Vuex에서 인스턴스/서비스에 액세스(Vue.js 3) (0) | 2022.04.12 |
DOM에 삽입할 때 Vue 컴파일 (0) | 2022.04.12 |