这更像是一个设计问题。
假设您有这样的方法(作为示例):
if (x == 5) {
c = 1;
} else {
if (z != 2) {
b = 6;
} else {
a = 3;
}
您认为为每个可能的分支配备一个 junit 是最佳实践吗?即,testx5、test xnot5znot2、testxnot5z2 等,或类似的东西:
void testMethod() {
// x is 5
test/assert code;
// x not 5, z not 2
test/assert code;
// x not 5, z is 2
test/assert code
// etc
}
编辑:明确一点,我的目标是完成代码覆盖。我只想知道是否应该为每个分支进行新测试或将它们组合在一个测试中的意见。感谢您的输入。
最佳答案
JUnit FAQ似乎表明最好用更少的断言进行更多的测试,因为 JUnit 只会报告测试方法中的第一个断言失败。使用一种方法,如果您破坏了 x = 5 案例,您将无法判断 x != 5 案例中的任何一个是否仍在工作。
关于java - 方法中的每个可能分支都应该有一个单独的 junit 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052306/