假设我有一个名为Car的类,包含以下方法:
看起来需要在调用Go()方法之前完成一系列操作。但是我想要分别测试每个方法,因为它们都有一些重要的逻辑。我不想有一堆像这样的单元测试:
- LoadGasoline(IFuel gas) 加油
- InsertKey(IKey key) 插入钥匙
- StartEngine() 启动引擎
- IDrivingSession Go() 开始行驶
看起来需要在调用Go()方法之前完成一系列操作。但是我想要分别测试每个方法,因为它们都有一些重要的逻辑。我不想有一堆像这样的单元测试:
Test1: LoadGasoline, Assert
Test2: LoadGasoline, InsertKey, Assert
Test3: LoadGasoline, InsertKey, StartEngine, Assert
Test4: LoadGasoline, InsertKey, StartEngine, Go, Assert
有没有更好的方法来对顺序逻辑进行单元测试?还是这是我的汽车设计存在问题?
--- 编辑 ---- 感谢所有回答。正如许多人注意到的那样,我还应该测试无效情况,而我也有这些测试,但这个问题侧重于如何测试有效的顺序。