例如,在方法
中public void divide(Integer a){
//.....
}
在Java测试中,我们需要将参数测试为String,null,0,Long ....,我们是否有一个工具可以自动测试这些所有情况?
由于
答案 0 :(得分:5)
首先,编译器不允许你传递String或Long,所以单元测试没有意义。
其次,虽然有一些像你所描述的那样的工具,但我不推荐它们。有效的单元测试不是试图覆盖尽可能多的状态空间(因为状态空间是无限大的)。这是关于“重大”案件的明智选择。决定什么被认为是重要的是你,程序员。
答案 1 :(得分:1)
您可以使用JUnit TestCase自行编写。我不知道有任何免费的工具可以自动轰炸所有可能的输入,看看它会如何反应,但我知道AgitarOne软件产品(商业)做了这种测试。它被称为搅动,让您探索代码在空值,最大值,最小值等方面的行为。
答案 2 :(得分:0)
为什么不将JUnit 4与参数化测试用例一起使用? JUnit 3不支持参数化测试用例OOTB,但JUnit 4具有特定的API来接受参数并使用这些参数作为输入调用您的测试用例。在你的情况下,这是否可行?