Я посмотрел на другие ответы с этой проблемой, и это, кажется, вызвано попыткой импортировать vue-router
в тест.Это, однако, не относится к моей проблеме.Вот мой тестовый код:
import { mount, shallowMount, createLocalVue } from '@vue/test-utils'
import ListDetails from '../components/homepage/ListDetails'
import EntityList from '../components/homepage/EntityList'
import BootstrapVue from 'bootstrap-vue'
import Vuex from 'vuex'
import faker from 'faker'
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(BootstrapVue)
describe('ListDetails.vue', () => {
it('gets the correct page list when router list id param present', () => {
const selected_list = {
id: faker.random.number(),
name: faker.lorem.words(),
entries: []
}
testRouteListIdParam(selected_list)
})
})
Тогда в testRouteListIdParam
я получу:
function testRouteListIdParam(selected_list) {
// just assume this sets up a mocked store properly.
const store = setUpStore(selected_list, true)
const $route = {
path: `/homepage/lists/${selected_list.id}`
}
const wrapper = mount(ListDetails, {
mocks: {
$route
},
store,
localVue
})
}
Как только произойдет mount()
, я получу ошибку:
[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
Есть идеи, почему это происходит?Опять же, я не использую VueRouter нигде в модульных тестах, поэтому я не уверен, почему я получаю ошибку.Может ли это быть BootstrapVue или Vuex, что все портит?