Так как мы решили использовать
screenshot-based тестирование, перед нами встал ряд задач:
- Для screenshot-based тестирования необходимо одинаковое состояние экрана, особенно в случае с графиком
- Должно быть три снимка экрана - actual, expected, compared
- Должен быть инструмент для описания и хранения тест-кейсов с возможностью быстро просмотреть отчет
Как базовый инструмент для тестирования мы решили использовать Cypress.
Почему именно этот инструмент? Наряду с незаурядными возможностями, такими как:
- Поддержка Typescript
- Хорошее логирование
- Работа с асинхронным кодом
Он обладает ключевой особенностью - возможностью манипулировать
Network requests. Это именно то, что нам нужно. Подменив ответ от сервера, мы сможем подавать графику на вход нужные нам данные и осуществлять проверку с помощью скриншотов.
Что со сравнением изображений, ведь это тоже трудозатратная задача? Сравнение полученных изображений уже реализовано в библиотеке
cypress-visual-regression. Для ее использования нам достаточно ее установить и подключить в своих тестах.