Axies를 HTTP 요청으로 사용하는 Vue.js 2 애플리케이션을 테스트 중이며 이러한 요청을 Moxios와 조롱하고 있습니다. 이 테스트에는 Avoriaz도 사용됩니다.vue.js 테스트에서 라우터를 조롱 할 때 vue 경고 피하기
난 그냥 테스트입니다 페이지 요소의 목록을 렌더링하고 <router-link>
문제를 사용하여 구현되는 일부 버튼은 내가
의 스타일로 내 테스트에서 경고를 많이 얻을 수 있다는 것입니다 표시오류 로그 : '[Vue 경고] : 알 수없는 맞춤 요소 : < 라우터 링크 > - 구성 요소를 올바르게 등록 했습니까? 내가 테스트 할
내 페이지 (간체) 다음과 같습니다
<template>
<div>
<ul>
<li v-for="myelement in myobject.myelements">
{{myelement.id}}
</li>
</ul>
<router-link :to="{name: 'myElementCreate'}">New element</router-link>
</div>
</template>
<script>
import myService from './my-service.js'
export default {
name: 'my-list',
data() {
return {
myobject: {
myelements: []
}
}
},
created() {
this.fetchData()
},
methods: {
fetchData() {
if (this.$route.params.id) {
myService.get(this.$route.params.id)
.then((response) => {
// init data from response
})
}
}
}
}
</script>
시험은 다음과 같습니다
import Vue from 'vue'
import moxios from 'moxios'
import {shallow} from 'avoriaz'
import MyElements from '@/my-elements'
describe('My Elements',() => {
beforeEach(() => {
moxios.install()
})
afterEach(() => {
moxios.uninstall()
})
it('Renders elements list', (done) => {
moxios.stubRequest(/.*/, {
status: 200,
response: existingElement
})
// mock route to allow fetchData() to load elements
const component = shallow(MyElements, {
globals: {
$route: {params: {'id': 1}}
}
})
moxios.wait(() => {
Vue.nextTick(() => {
try {
const myElement = component.find('ul li')
expect(myElement[0].text()).to.equal('6035132')
} catch (e) {
done(e)
}
done()
})
})
})
})
const existingElement = {
'id': 6035132
}
내가 Vue.use(Router)
과 따라 수입, 경고를 추가하는 경우 가버 렸지만 내 모 옥스 모의는 더 이상 작동하지 않습니다. 이 경고를 없애는 방법에 대한 아이디어?
감사 EDD :
이 문제를 해결하려면, 당신은 스텁 라우터 링크 구성 요소를 등록 할 수 있습니다. 코드가 나에게 실행되지 않아서 ('routerLink'에 값이 할당되었지만 결코 사용되지 않고 + 'routerView'가 정의되지 않았기 때문에) 내 문제를 해결하기 위해 답을 편집했습니다. 아마 그냥 복사 + 붙여 넣기 오류 ... – GreenTurtle