Предположим, у меня есть класс Car со следующими методами:
- LoadGasoline (топливный газ)
- InsertKey (клавиша IKey)
- StartEngine ()
- IDrivingSession Go ()
Цель Car - настроить и вернуть IDrivingSession, который остальная часть приложения использует для управления автомобилем. Как мне протестировать мой автомобиль?
Похоже, что для того, чтобы я мог вызвать метод Go (), требуется последовательность операций. Но я хочу протестировать каждый метод отдельно, так как все они имеют некоторую важную логику. Я не хочу иметь кучу юнит-тестов типа
Test1: LoadGasoline, Assert
Test2: LoadGasoline, InsertKey, Assert
Test3: LoadGasoline, InsertKey, StartEngine, Assert
Test4: LoadGasoline, InsertKey, StartEngine, Go, Assert
Нет ли лучшего способа последовательной логики для модульного тестирования, или это проблема моего автомобиля?
--- РЕДАКТИРОВАТЬ ----
Спасибо за ответы на все вопросы. Как многие заметили, у меня также должны быть тесты на недопустимые сценарии, и у меня они тоже есть, но этот вопрос сосредоточен на том, как проверить правильную последовательность.