我用递归方法创建了一个类来检查两个数组是否相同,现在我想用 JUnit 测试它。 所以我的问题是:
无值、负值、有限值应该用什么方法测试?
提前致谢。 最好的问候
ps:这是我到目前为止所做的:
@Test
public void testOfTheTests(){
System.out.println("Test");
int[]a={1,2,3,4,5,6,7};
int[]b={7,6,5,4,3,2,1};
Boolean result = Main.equalsHelper2(a,b,0,6);
Boolean expResult=true;
// assertEquals(expResult,result);
Assert.assertNotNull(result);
}
最佳答案
首先:重构被测方法的方法名。
equalsHelper2()
真是一个糟糕的名字。
像 isSameContent()
这样的东西更好。
测试方法也是一样的:testOfTheTests()
。
它意味着一切:它真的是一种反模式命名。
其次:质疑自己方法的 API:输入和输出。
例如:如果一个或两个数组为空,方法应该返回什么?
你应该抛出异常吗?返回 false
?所以对于...
其他示例:为什么使用 Boolean
而不是 boolean
作为测试方法的返回类型?
null
是有效的返回值吗?如果是,为什么?如果不是,请改用 boolean
。
要实现它,最好的方法是继续使用 TDD:为每个用例逐步创建一个测试方法,并为每个测试方法指定一个相关的名称:isSameContent_with_empty_array()
, isSameContent_with_same_content( )
, isSameContent_with_distinct_content()
, 等等...
通过编写第一个测试方法来实现它,明确指定方法的实际输入和预期输出,并相应地调整实现,直到测试通过。
然后,如果需要,重构实现/测试并继续下一个测试方法。
关于java - JUnit测试递归方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45753703/