这个例子是定制的,让我怀疑。
Object Car {
color:null
tyre : 0;
}
fillCar(Object Car, boolean b) {
if (b) {
Car.color = "Red"
} else {
Car.tyre = 4;
}
}
现在我需要对我的代码进行单元测试。
我的test1是(Car,true),test2是(Car,false)。
我的问题:
我是否需要在test1和类似的线路上测试“轮胎== 4”我需要在test2时检查“color == null”吗?
答案 0 :(得分:2)
如果这是该方法的功能要求的一部分,则答案为是。
例如,如果您的规格说明 True 时轮胎的值必须为4且其他变量无关紧要,则无需这样做。但是,如果您的规格说不仅轮胎必须为4但其余变量必须保持相同的值,那么您也应该检查它。
考虑到单元测试不仅有助于检查您的代码是否正常,而且还可以确保在将来的代码中,您不会破坏预期的功能。
答案 1 :(得分:1)
通常,测试代码的所有部分都没有坏处。事实上,我会鼓励它。这是检查逻辑中没有错误的一种非常简单的方法。
在这种情况下,代码很简单,可以看到结果。但是,如果扩展Car或添加更多功能,它可能会变得更加复杂。
答案 2 :(得分:0)
关于这一点有很多争论,但是一旦我专注于验证界面,单元测试开始对我有意义。在这种情况下,您有一个函数,它公开了一个接口,您可以在其中传入car-object和boolean,然后根据boolean的值对car对象进行某些修改。你非常正确地看到两个单元测试覆盖它,我个人会停在那里。如果您担心出现空值,则可以在构建汽车对象时在单元测试中覆盖它。如果你指定的东西不是一个可能是null的直接文字,那么测试空值是有意义的。
在测试驱动设计(TDD)的背景下,再一次提示 - 单元测试对我来说效果更好。 YMMV,但我发现非TDD代码非常难以进行单元测试。
最后 - 只是提到我发现学习TDD /单元测试非常值得。