Google Test фикстур для запуска интеграционных тестов UndoCommand.
Подробнее...
#include <IntUndoCommandTest.hxx>
|
| void | SetUp () override |
| | Настраивает тестовое окружение перед каждым тестом.
|
| void | TearDown () override |
| | Очищает тестовое окружение после каждого теста.
|
| void | createTestFile (const std::string &filename, const std::string &content) const |
| | Создает тестовый файл с указанным содержимым во временной директории.
|
| void | createTestDirectory (const std::string &dirname) const |
| | Создает тестовую директорию во временном расположении.
|
| void | stageFiles (const std::vector< std::string > &files) |
| | Индексирует список файлов с использованием логики индексации RepositoryManager.
|
| bool | createTestCommit (const std::string &message) |
| | Создает новый коммит (сохранение) с указанным сообщением.
|
|
| static bool | containsMessage (const std::vector< Event > ¬ifications, const std::string &message) |
| | Проверяет, существует ли конкретное сообщение (подстрока) в любом уведомлении о событии.
|
| static int | countMessages (const std::vector< Event > ¬ifications, const std::string &message) |
| | Подсчитывает количество вхождений конкретного сообщения (подстроки) во всех уведомлениях о событиях.
|
| static void | simulateUserInput (const std::string &input) |
| | Имитирует пользовательский ввод, помещая строку в очередь ввода mock шины событий.
|
|
|
std::shared_ptr< MockSubject > | mockEventBus |
| | Общий указатель на mock шину событий (наблюдатель/имитатор ввода).
|
|
std::shared_ptr< RepositoryManager > | repoManager |
| | Общий указатель на компонент основной логики репозитория.
|
|
std::unique_ptr< UndoCommand > | command |
| | Уникальный указатель на тестируемую команду.
|
|
std::filesystem::path | testDir |
| | Путь к временной тестовой директории репозитория.
|
Google Test фикстур для запуска интеграционных тестов UndoCommand.
Этот фикстур предоставляет необходимую инфраструктуру для тестирования команды undo:
- SetUp/TearDown: Управление временной директорией репозитория SVCS.
- Основные компоненты: Экземпляры MockSubject (для шины событий/вывода/имитации ввода) и RepositoryManager (для основной логики).
- Вспомогательные методы: Упрощают манипуляцию файлами, индексацию, коммиты и проверку уведомлений.
◆ containsMessage()
| bool svcs::test::cli::utils::UndoCommandTest::containsMessage |
( |
const std::vector< Event > & | notifications, |
|
|
const std::string & | message ) |
|
staticprotected |
Проверяет, существует ли конкретное сообщение (подстрока) в любом уведомлении о событии.
- Аргументы
-
| notifications | Список захваченных событий. |
| message | Подстрока для поиска. |
- Возвращает
- true если сообщение найдено в любом уведомлении, false в противном случае.
◆ countMessages()
| int svcs::test::cli::utils::UndoCommandTest::countMessages |
( |
const std::vector< Event > & | notifications, |
|
|
const std::string & | message ) |
|
staticprotected |
Подсчитывает количество вхождений конкретного сообщения (подстроки) во всех уведомлениях о событиях.
- Аргументы
-
| notifications | Список захваченных событий. |
| message | Подстрока для подсчета. |
- Возвращает
- Количество событий, содержащих подстроку.
◆ createTestCommit()
| bool svcs::test::cli::utils::UndoCommandTest::createTestCommit |
( |
const std::string & | message | ) |
|
|
protected |
Создает новый коммит (сохранение) с указанным сообщением.
Внутренне индексирует файлы (если необходимо) и вызывает логику коммита менеджера репозитория.
- Аргументы
-
| message | Сообщение коммита. |
- Возвращает
- true если коммит успешен, false в противном случае.
◆ createTestDirectory()
| void svcs::test::cli::utils::UndoCommandTest::createTestDirectory |
( |
const std::string & | dirname | ) |
const |
|
protected |
Создает тестовую директорию во временном расположении.
- Аргументы
-
| dirname | Относительный путь/имя директории. |
◆ createTestFile()
| void svcs::test::cli::utils::UndoCommandTest::createTestFile |
( |
const std::string & | filename, |
|
|
const std::string & | content ) const |
|
protected |
Создает тестовый файл с указанным содержимым во временной директории.
- Аргументы
-
| filename | Относительный путь/имя файла. |
| content | Содержимое для записи в файл. |
◆ SetUp()
| void svcs::test::cli::utils::UndoCommandTest::SetUp |
( |
| ) |
|
|
overrideprotected |
Настраивает тестовое окружение перед каждым тестом.
Инициализирует компоненты, создает временную директорию и инициализирует репозиторий.
◆ simulateUserInput()
| void svcs::test::cli::utils::UndoCommandTest::simulateUserInput |
( |
const std::string & | input | ) |
|
|
staticprotected |
Имитирует пользовательский ввод, помещая строку в очередь ввода mock шины событий.
Это критически важно для тестирования подтверждающего запроса в UndoCommand.
- Аргументы
-
| input | Строка для имитации пользовательского ввода (например, "y\n" или "n\n"). |
◆ stageFiles()
| void svcs::test::cli::utils::UndoCommandTest::stageFiles |
( |
const std::vector< std::string > & | files | ) |
|
|
protected |
Индексирует список файлов с использованием логики индексации RepositoryManager.
- Аргументы
-
| files | Вектор имен файлов для индексации. |
◆ TearDown()
| void svcs::test::cli::utils::UndoCommandTest::TearDown |
( |
| ) |
|
|
overrideprotected |
Очищает тестовое окружение после каждого теста.
Очищает временную директорию и восстанавливает рабочий путь.
Объявления и описания членов классов находятся в файлах: