Я вхожу в мир тестирования приложений, и у меня есть некоторые сомнения по поводу того, как тестировать, в основном из-за языков и дочерних компонентов.
По сути, первые тесты, которые я пытаюсь провести, - это проверить, есть ли на страницах списка правильные данные.
Структура, которая у меня есть на данный момент, представляет собой следующую структуру -
состав компонентов
baseTable
|- columnHeader
|- rowRoute
В зависимости от маршрута, на котором находится пользователь, в компоненте baseTable
тело таблицы динамически импортируется.
Например, активная страница - это пользователи, поэтому она будет импортировать rowUsers.
Первая ошибка, которая возникает у меня, заключается в том, что в компоненте columnHeader он представляет ошибку
vm.$t is not a function
вторая ошибка находится в компоненте rowUsers
, в котором говорится
[Vue warn]: Unknown custom element: <router-link> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
третья ошибка состоит в том, что компонент rowUsers
не существует.
expect( wrapper.find( rowUsers ).exists()).toBe( true );
Ожидается: true Получено: false
Я попытался передать i18n и ссылку на маршрутизатор на обертке, но это все равно не сработало.
import { shallowMount } from '@vue/test-utils';
import baseTable from '@/components/bundles/tables/baseTable';
import rowUsers from '@/components/dynamic/tables/rowUsers';
import i18n from '@/plugins/i18n';
describe( 'Lists', () => {
it( 'Users list', () => {
// mock from user
const fields = [{
email: '[email protected]',
name: 'user 1',
role: 'admin'
}];
const wrapper = shallowMount( baseTable, {
propsData: {
url: 'users',
headers: [ null, 'name', 'email', 'role' ],
fields: fields,
row: 'Users'
},
stubs: ['router-link'],
i18n
});
expect( wrapper.find( rowUsers ).exists()).toBe( true );
})
})
Любое предложение?