Files
vyaivanove dc626fecf7 Use ksp instead of kapt
commit_hash:d68b8afce26dda3cf342d446ded234d9f4a6fb0f
2024-12-18 15:44:44 +03:00
..
2024-08-15 17:48:30 +03:00
2024-12-18 15:44:44 +03:00
2023-01-12 16:05:55 +03:00
2022-09-09 13:28:33 +03:00

DivKit Regression Testing

Модуль ручного регрессионого тестирования DivKit. Содержит сценарии и сопутсвующие файлы версток для ручного прогона сценариев.

Прогон сценариев

Осуществляется в DivKit Playground:

  • Запустить DivKit Playground
  • Выбрать раздел Testing. Загрузится список сценариев
  • При выборе каждого из сценариев загрузиться Div2View с заданными для сценария параметрами и описание сценария (шаги и ожидаемый результат). Перейти на следующий сценарий можно прямо с этого экрана по кнопкам в тулбаре.

Начиная с Android 5.0+ доступна возможность записи экрана во время работы над сценарием. Её можно отключить на главном экрана Testing, в случае возникновения проблем.

Добавление нового сценария

Для добавления нового сценария требуется:

  1. Добавить файл json-файл с версткой в ../../../test_data/regression_test_data.
  2. Добавить сценарий в файл ../../../test_data/regression_test_data/index.json:
    • Задать заголовок в поле title
    • Перечислить шаги сценария в поле steps
    • Перечислить ожидаемые результаты в поле expected_results
    • Опционально указать tags для группировки и фильтрации сценариев
    • Опционально указать priority, один из blocker, critical, normal и minor. По-умолчанию normal.
    • Задать file - путь к ранее добавленному файлу верстки
  3. Проверить работу сценария. См. Прогон сценария

Development

Входной точкой в модуль является RegressionActivity. Состояние ui RegressionActivity обновляются из RegressionViewModel#uiState. RegressionViewModel#uiState представляет собой Kotlin Flow.

Сценарии загружаются из ScenariosRepository, который создается на уровне DivKitApplication.

Данные сценариев отображаются в списке ScenarioListAdapter.

Данные каждого сценария отображаются в ScenarioActivity. За создание Div2View отвечает реализация в divkit-demo-app Div2ViewCreator