компонент рендерим его в браузере, делаем скриншот, сравниваем с эталоном.
Что удалось нагуглить: отлично работает со страницами. берем cypress, запускаем наш nuxt, запускаем тесты, в тестах пишем что-то вроде
it(testName, () => {
cy.visit('/my-page');
cy.get('body').matchImageSnapshot();
});
проблема тестирования страницы целиком в том, что как правило, страница получает кучу данных из api, может зависеть от пользователя и т.д...
Можно чуть сузить проблему создав тестовую страницу, на которую передавать в get параметрах тестируемый компонент:
<div class="test-page">
<component :is="$route.query.component" />
</div>
если компоненту нужны пропсы, то можно передать их опять же get параметрами
но проблема мока остальных зависимостей ни куда не далась: запросы к api, vuex и т.д...
такое удобно делать в связке со сторибуком, например
Обсуждают сегодня