반응형
구성 요소를 게으르게 로드할 때 얕은 마운트가 마운트처럼 작동함
나는 Nuxt 앱을 테스트하고 있다.vue-test-utils
(버전 1.0.0-베타.29) 그리고 나는 로딩을 게을리 한다.child
구성 요소테스트할 때shallowMount
그parent
스텁 구성 요소child
s (나는 그것을 렌더링하고 싶지 않다.child
종속성 때문에 구성 요소).
만드는 대신child
스텁, 전체 구성 요소 트리가 에서 렌더링됨shallowMount
.부품을 게으르게 적재하지 않고 적재할 경우,shallowMount
예상대로 되다
이 문제는 이미 여기서 직면하고 해결된 것 같다: https://github.com/vuejs/vue-test-utils/issues/959
나는 통과하려고 노력했다.{ shouldProxy: true }
장착 옵션으로 또는 구성 요소를 통과하여 수동으로 스텁{ stubs: ['componentname'] }
그러나 문제는 여전히 일어나고 있다.
parent
구성 요소:
<template>
<div id="wrapper">
<div
v-for="item in markets"
class="item-wrapper">
<Child :market="item"/>
</div>
</div>
</template>
<script>
export default {
components: {
Child: () => import('./TimelineItem.vue')
},
props: {
markets: {
type: Array,
default: () => []
}
}
}
</script>
child
구성 요소:
<template>
<div>
Child
</div>
</template>
<script>
export default {
props: {
market: {
type: Object,
default: () => {}
}
}
}
</script>
스냅샷:
<div id="wrapper">
<div class="item-wrapper">
<div>Child</div>
</div>
<div class="item-wrapper">
<div>Child</div>
</div>
</div>
나는 다음과 같은 스냅숏을 가질 것으로 기대했다.
<div id="wrapper">
<div class="item-wrapper">
<child-stub></child-stub>
</div>
<div class="item-wrapper">
<child-stub></child-stub>
</div>
</div>
나도 같은 문제가 있었고 나에게 맞는 해결 방법을 찾았어.테스트 파일의 구성 요소를 가져와서 구성 요소 섹션에 추가해 보십시오.
shallowMount(Component, { components: { Child }
)
해결책은 a를 사용하는 것일 수 있다.dynamic component
.
<div v-if='!Child'>Loading...</div>
<component v-if='Child' :is='Child' />
<script>
export default {
data: {
Child:null,
},
created(){
import('./TimelineItem.vue').then(it=>this.Child=it);
}
}
</script>
반응형
'programing' 카테고리의 다른 글
스파크 작업에 JAR 파일 추가 - 스파크 제출 (0) | 2022.05.01 |
---|---|
C 코드에서 Python 코드를 어떻게 부릅니까? (0) | 2022.04.29 |
스프링 응용 프로그램 컨텍스트 가져오기 (0) | 2022.04.29 |
C99가 아닌 구조체 내의 익명 결합? (0) | 2022.04.29 |
기호 테이블이란? (0) | 2022.04.29 |