Домашнее задание: автотесты
Запуск
# Установка и запуск selenium-standalone
npm i -g selenium-stanalone
selenium-standalone install
selenium-standalone start
# Установка и запуск проекта
npm i
npm start
Тесты
# Юнит тесты
npm run test:unit
# Интеграционные тесты
npm run test:hermione
# Интеграционные с GUI
npm run test:gui
Логические блоки
- "Навигация"
- "Хлебные крошки"
buildBreadcrumbs
- показывают HISTORY на списке коммитов
- показывают урл на HISTORY при вызове с хэшем (переход в коммит)
- показывают урлы на родительские директории при вызове с хэшем и путём (переход в файлы/папки)
- "Генерация урлов"
buildObjectUrl
- возвращает урл на директорию
- возвращает урл на файл
- возвращает "хэш" в случае передачи невалидного типа
- "Хлебные крошки"
- "Взаимодействие с git"
executeGit
- возвращает результат выполнения git команды в виде строки
- "История коммитов"
gitHistory
- возвращает массив объектов, хранящих информацию о коммитах
- "Содержимое дерева"
gitFileTree
- возвращает массив js-объектов, хранящих информацию об объектах в заданном git-дереве
Предметная область
Приложение отображает в браузере информацию из git репозитория: список коммитов, файловую систему для выбранного коммита, содержимое выбранного файла (поддерживаются только текстовые форматы). Для удобства навигации на каджой странице отображаются "хлебные крошки".
Как запустить
git clone git@github.com:dima117/shri-testing-homework.git
cd shri-testing-homework.git
npm i
npm start
Интеграционные тесты
Сценарии для интеграционных тестов
- на всех страницах (история коммитов, просмотр файловой системы, просмотр содержимого файла) правильно отображается правильное их содержимое;
- правильно работают переходы по страницам
- из списка коммитов на список файлов
- из списка файлов во вложенную папку
- из списка файлов на страницу отдельного файла
- переходы по хлебным крошкам
Модульные тесты
- нужно добавить в README список логических блоков системы и их сценариев
- для каждого блока нужно написать модульные тесты
- если необходимо, выполните рефакторинг, чтобы реорганизовать логические блоки или добавить точки расширения