zvo*_*kov 7 language-agnostic unit-testing
假设我有具有以下方法的 Car 类:
Car 的目的是配置并返回 IDriverSession,应用程序的其余部分使用该 IDrivingSession 来驾驶汽车。如何对我的汽车进行单元测试?
看起来需要完成一系列操作才能调用 Go() 方法。但我想单独测试每种方法,因为它们都有一些重要的逻辑。我不想进行一堆像这样的单元测试
Test1: LoadGasoline, Assert
Test2: LoadGasoline, InsertKey, Assert
Test3: LoadGasoline, InsertKey, StartEngine, Assert
Test4: LoadGasoline, InsertKey, StartEngine, Go, Assert
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来对顺序逻辑进行单元测试,或者这是我的汽车设计的问题吗?
--- 编辑 ---- 感谢您的所有回答。正如许多人注意到的那样,我还应该对无效场景进行测试,我也有这些,但这个问题的重点是如何测试有效序列。
我认为每种方法都应该单独、独立地进行测试。
恕我直言,您应该为每种情况准备环境,因此如果您更改 LoadGasoline 方法,则只有 LoadGasoline 测试会中断,并且您不需要看到所有测试因为单个错误而中断。
我不知道你的汽车的状态是什么样的,但是,在 InsertKey 之前,你应该准备一个方法,比如 car.SetTotalGasoline(20); 或在此方法中设置的任何变量,但不依赖于 LoadGasoline 方法的复杂逻辑。
您稍后将需要一个测试(在本例中,不是单元测试)来测试所有序列。
| 归档时间: |
|
| 查看次数: |
1084 次 |
| 最近记录: |