【发布时间】:2014-01-06 21:08:26
【问题描述】:
如果我不太确定以下哪些测试是必要的或多余的。 考虑对以下代码进行单元测试:
public class Locker {
public enum Type { FOO, BAR, FOOBAR };
private Locker() {}
public boolean shouldlock (int x) {
return x > 10;
}
public boolean lock (Type type, int x) {
switch (type) {
case FOO : return shouldlock(x);
case BAR : return shouldlock(x * 2);
}
return false;
}
}
测试用例 1:测试 shouldlock 的真假情况。 - 毫无疑问。
Question 1:
测试用例2:lock 输入类型Foo 也被测试真假情况,即两者。 ?在其调用shouldlock 的基础上,我们已经为它测试了这两种情况。因此它可能是多余的。但不太确定。
Question 2:
测试用例 3:假设Question1 的答案为真,我们还需要测试Bar 的真假吗?
Question 3:
测试用例 4:假设对 Question1 and Question2 的回答都是正确的。现在假设 shouldlock 更改为私有(假设它)。测试的唯一区别是我应该省略Test case 1 吗?
Question 4:
测试用例5:是否需要检查唯一遗漏的枚举FOOBAR是否返回false?
Question 5:
假设问题 4 的答案是正确的,那么如果 enum 明天包含 100 多个项目怎么办?如何扩展这样的测试?
【问题讨论】:
-
旁注:
return x > 10 ? true : false;可以简化为return x > 10;
标签: java unit-testing testing