Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit-如何测试具有不同值的方法?_Java_Unit Testing_Junit_Junit4 - Fatal编程技术网

Java JUnit-如何测试具有不同值的方法?

Java JUnit-如何测试具有不同值的方法?,java,unit-testing,junit,junit4,Java,Unit Testing,Junit,Junit4,我有一个方法,希望用不同的值来测试它。我的问题是:如何编写一个JUnit测试,用不同的值测试同一个方法?JUnit4支持参数化测试 请参阅。您可以查看中的参数化测试 您还可以选择在许多情况下更方便的方法。我建议您为每个(重载)函数定义创建不同的单元测试,因为您实际上测试的是不同的函数。例如: class MainClass { public void method( int param) {... } public void method( String param) { ...} } cla

我有一个方法,希望用不同的值来测试它。我的问题是:如何编写一个JUnit测试,用不同的值测试同一个方法?

JUnit4支持参数化测试


请参阅。

您可以查看中的参数化测试


您还可以选择在许多情况下更方便的方法。

我建议您为每个(重载)函数定义创建不同的单元测试,因为您实际上测试的是不同的函数。例如:

class MainClass {
public void method( int param) {... }
public void method( String param) { ...}
}

class MainClassTest {
@Test
public void methodIntTest() {
 //call method(int)
}

@Test
public void methodStringTest() {
 //call method(String)
}
}

如果OP想要的是用不同的参数对同一个方法进行两次调用,我就不会这样理解他的问题。他说他有“方法”。当然,在这种情况下,您仍然可以编写不同的测试,以测试的条件命名。好的,我对这个问题的理解似乎是错误的。向这个频道的所有人道歉,我认为他的意思是他的函数接受不同的参数(即重载)——因此上面的解决方案。不需要道歉。我认为你的基本建议仍然是有效的,重新编写以解决对同一方法具有不同值的一组调用的不同名称的测试。Liv可能希望删除此答案,因为我们现在都同意它不回答海报的问题(如果它允许你对这么多评论进行评论,我将发布此答案,而不是向下投票)对不起,我已经离线很长时间了——那么我们是否同意我需要删除答案?如果这是错误的,我不介意这样做——很明显,我已经脱离循环一段时间了,我想确保我在这里得到了正确的想法。谢谢。理论似乎比参数化测试更清晰/更好,至少在实现方面是这样。但很遗憾,JUnit没有像NUnit的
[TestCase]
注释那样清晰的注释,它允许您指定每个测试方法。下面是一篇关于参数化的好文章: