Рецепты
Проверка конечного контракта Execution
Сопоставляйте только поля жизненного цикла, определяющие проверяемое поведение.
v0.1.0-dev.1Средний уровеньusecase_forge_test
Проверка конечного контракта Execution
Используйте матчеры отдельных полей вместо сравнения полной Execution Entry, чьи несущественные для сценария временные метки или служебные данные могут меняться.
dart
expect(
useCase.history,
contains(
isTerminalUseCaseExecutionEntry<LoadOrder>(
result: UseCaseExecutionResult.completed,
),
),
);
Для полного сценария useCaseTest подписывается до act, ждёт явное наблюдаемое условие, проверяет Snapshot и историю, затем закрывает UseCase. Ручной UseCaseTestObserver удобен для поэтапных проверок нескольких Command.
Отклонение до начала обработки намеренно отсутствует в конечной истории. Проверяйте прикладной обработчик отклонения напрямую или используйте диагностику, если событие отклонения входит в требование.