下面的代码是我的方法逻辑。
pulic String getData()
{
if (leg.length == 4)
return "ATE";
else if (leg.length == 2) {
return "FTE";
}
if (leg.length == 3) {
if (xr1.KotilaType.equals("CST")) {
return "HTE";
}
return "DTE";
}
return "BTE";
}
按照我的指示,我需要开始为此方法编写 Junit 测试用例。
如您所见,此方法中只有一个方法和多个条件。
现在我的问题是, 我们是否需要为每个条件编写一个单独的 Junit 测试用例(一个单独的方法)??
或者仅编写一个 Junit TestCase 并涵盖上述所有条件就足够了吗??
我是junit的新手,不是专家,请指导我为上述方法编写JunitTestCases的合适方法是什么??
最佳答案
这是风格问题。这是两种选择:使用一种方法:
public void testAll() {
assertEquals("ATE", getData(leg4));
assertEquals("FTE", getData(leg2));
// etc.
}
使用一种测试方法/组合:
public void testLength4() {
assertEquals("ATE", getData(leg4));
}
public void testLength2() {
assertEquals("FTE", getData(leg2));
}
前者的优点是很容易看到所有组合,因为它们都在一个地方。如果有很多组合或组合很复杂,这将非常有用。
后者的优点是每个组合都有一个测试,因此很容易定位问题,因为(理论上)只有一个测试会失败。缺点:您很快就会用完测试方法的名称。 testLength4、testLength2、testLength3WithCST、testLength3WithoutCST。当您有很多组合时(比如一年中每个月进行一次测试),这种缺点会变得尤为严重。
大多数时候,我使用一种测试方法/测试用例,但如果组合的数量开始变多,我就会使用一种方法。这包含所有组合,因为我希望能够一次看到我的所有组合,看看我是否遗漏了任何组合。
关于unit-testing - 为此方法编写 JunitTestCases 的合适方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8051019/