Я приведу пример из реальной жизни, чтобы дать представление о проблеме, которую я пытаюсь решить.
Моя команда отвечала за приложение React, созданное с Semantic UI как его библиотека пользовательского интерфейса.Вот список написанных тестов (обратите внимание, что у нас есть собственное определение типов тестов)
- Юнит-тесты : тестирование для каждого компонента с использованием фермента.
- Системные тесты : в основном для контейнерных компонентов.Фермент, синон и фетч-макет, которые используются для насмешек.
- Сквозные тесты : Выполнено с кукловодом.
Позже наши менеджеры по продуктам захотели тему на основе Manerial UI .Чтобы сделать это возможным, нам нужно
- Заменить компоненты семантического интерфейса пользователя на компоненты пользовательского интерфейса материала
- Создать новые помощники по тестированию для нашей системы и устройства.Затем обновите все наши тесты, чтобы использовать новые тестовые помощники
- Напишите новых помощников для сквозных тестов.
Это был болезненный процесс, чтобы сделать это возможным, и до сих порчастично сделано.Я думал, что одной из наших ошибок было не определение компонентов, которые являются более общими и оборачивают нашу логику пользовательского интерфейса.Тем не менее, после просмотра API компонента Semantic UI и Material UI мне интересно, было ли это вообще возможно.Поскольку:
- Каждая библиотека имеет различную реализацию компонента
- Компоненты имеют разные атрибуты
- Структура HTML отличается, поэтому тест конца в конец все еще необходимо изменить, когдаUI Library поменяна местами.
Теперь мой вопрос: Кто-нибудь сталкивался с такими же проблемами и как вы решили эту проблему?