반응형
JEST @vue/composition-api + Jest 테스트 스위트를 실행하지 못했습니다.[ vue - composition - api ]는 Vue . use ( Vue Composition )를 호출해야 합니다.API) 사용 전
저는 Vue 2를 쓰고@vue/composition-api
플러그 인.
Jest 테스트를 생성했지만 오류로 인해 테스트가 실패했습니다.
Test suite failed to run
[vue-composition-api] must call Vue.use(VueCompositionAPI) before using any function.
1 | import { ref } from '@vue/composition-api';
2 |
> 3 | const showSidebar = ref(false);
| ^
4 | export const breakPointSize = 1250;
5 | export const classLink = 'SidebarSectionItemRow';
6 | export const idBtnNavbar = 'sidebarBtnNavbar';
test.spec.ts
import VueCompositionApi from '@vue/composition-api'
import { createLocalVue, mount } from '@vue/test-utils';
import MainMenuContent from '@/components/layouts/main/sidebar/menu/MainMenuContent.vue';
// create an extended `Vue` constructor
const localVue = createLocalVue()
// install plugins as normal
localVue.use(VueCompositionApi)
describe('MainMenuContent', () => {
it('expect AdminSection ', () => {
const wrapper = mount(MainMenuContent, {
localVue,
});
....
});
});
이 오류의 원인은 다음과 같습니다.ref
바깥에 있다setup()
기능.사이드바 Control.ts
import { ref } from '@vue/composition-api';
const showSidebar = ref(false);
export function useControlSidebar() {
const toggleSidebar = () => {
showSidebar.value = !showSidebar.value;
};
return {
showSidebar,
toggleSidebar,
};
}
어떻게 해서든 해결할 수 있을까요?
MainMenuContent.vue
최상위 수준의 수입을 가지고 있을 가능성이 높다sidebarControl.ts
를 호출합니다.ref
컴포넌트 외setup()
Import(가져오기)MainMenuContent.vue
를 트리거합니다.ref
테스트를 셋업할 기회가 생기기 전에 전화한다.localVue
와 함께VueCompositionApi
.
이 문제를 해결하는 한 가지 방법은 설정이 완료될 때까지 컴포넌트 Import를 연기하는 것입니다.localVue
테스트:
// import MainMenuContent from '@/components/MainMenuContent.vue' // ❌ DON'T DO THIS
import { mount, createLocalVue } from '@vue/test-utils'
import VueCompositionApi from '@vue/composition-api'
describe('MainMenuContent', () => {
it('expect AdminSection', () => {
const localVue = createLocalVue()
localVue.use(VueCompositionApi)
const MainMenuContent = require('@/components/MainMenuContent.vue').default // ✅
const wrapper = mount(MainMenuContent, { localVue })
})
})
또는 Jest 셋업 파일을 사용하여 테스트 환경을 초기화할 수 있습니다.VueCompositionApi
:
// jest.config.js
module.exports = {
setupFiles: ['<rootDir>/tests/jest-setup.js']
}
// jest-setup.js
import Vue from 'vue'
import VueCompositionApi from '@vue/composition-api'
Vue.use(VueCompositionApi)
언급URL : https://stackoverflow.com/questions/65275139/jest-vue-composition-api-jest-test-suite-failed-to-run-vue-composition-api
반응형
'IT이야기' 카테고리의 다른 글
불필요한 소수점 0 없이 문자열에 부동소수 형식을 적절하게 지정하는 방법 (0) | 2022.06.15 |
---|---|
key.charAt는 createLocalVue()의 함수 오류가 아닙니다. (0) | 2022.06.15 |
탭을 닫은 후 Vuex 지속 상태가 제거되지 않음 (0) | 2022.06.15 |
GNU C 매크로 envSet(이름)에서 (void) " 이름은 무엇을 의미합니까? (0) | 2022.06.15 |
Vuex가 mapState를 사용하여 매핑된 계산 변수를 업데이트하지 않음 (0) | 2022.06.15 |