Мы используем библиотеку форматированного состояния и имеем проблемы с написанием модульных тестов для кода.Тестирование модулей с boost :: statechart
В нашем нормальном исполнении государственная машина начинает в ClosedState
:
struct BoostStateMachine : sc::state_machine<BoostStateMachine, ClosedState >
Мы хотели бы проверить конкретное состояние перехода без необходимости пересекать государственную машину до того состояния, к примеру, мы хотели бы, чтобы начать тест в AnotherState
. Проблема в том, что sc::state_machine
шаблонизирован в исходном состоянии. Подача конечного автомата со всеми событиями, которые приводят к проверенным состояниям, обычно требует большой работы и усложняет тесты.
Примитивное решение - написать специальное событие для отладки и добавить его в ClosedState
. Это событие вызовет немедленный переход на AnotherState
.
Вы знаете какой-либо другой способ выполнить задачу?
Не будет работать, потому что мы, естественно, хотим, чтобы многие тестовые примеры начинались с разных состояний. – FireAphis
@FireAphis см. Редактирование в моем оригинальном посте для другого способа для другого способа – KitsuneYMG
Спасибо за разработанный ответ. Я думаю, технически, мне действительно не нужен DO_TESTS ifdef, потому что эти типы не будут использоваться в производственном коде в любом случае. Правильно? – FireAphis