728x90
에러
console.error [vue-test-utils]:
could not overwrite property $route,
this is usually caused by a plugin that has added the property as a read-only value
사용 코드
컴포넌트이름.test.js
import { shallowMount, createLocalVue } from "@vue/test-utils";
import VueRouter from "vue-router";
const localVue = createLocalVue();
const router = new VueRouter();
if (!process || process.env.NODE_ENV !== "test") {
localVue.use(VueRouter);
}
function makeWrapper({ routeName = "" } = {}) {
return shallowMount(ClassMaterials, {
localVue,
propsData: {},
router,
mocks: {
$route: {
name: routeName,
query: {},
},
},
});
}
테스트코드에 쓰는게 아니라, src/router/index.js 그니까, 테스트가 아니라 실제 런타임에 사용되는 Vue 인스턴스에 주입할 VueRouter를 차단해야 했던 것이다.
해결방법
테스트 코드에 있는 아래 코드 삭제 Vue.use(VueRouter)는 남김.
if (!process || process.env.NODE_ENV !== "test") {
Vue.use(VueRouter);
}
src/router/index.js에 위에 코드 추가
if (!process || process.env.NODE_ENV !== "test") {
Vue.use(VueRouter);
}
728x90
'Vue.js' 카테고리의 다른 글
[Vue] textarea에 개행마다, 높이 늘어나고, shift+enter 개행이고, enter하면 서브밋하는 코드 (0) | 2023.02.19 |
---|---|
[Vuejs] Vuex store 메서드 스타일 액세스 (0) | 2022.12.13 |
[Vue] test-utils TypeError: Cannot read property 'parentNode' of undefined (0) | 2022.11.27 |
[Vue] textarea 스크롤말고 높이가 늘어나게 처리하기 (0) | 2022.11.26 |
[Vue]test utils에서 props 변경하는 방법 (0) | 2022.11.25 |
댓글