IT이야기

농담으로 i18 다음 모듈을 조롱하는 방법

cyworld 2022. 4. 12. 23:17
반응형

농담으로 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

반응형