2011-04-26 20 views

回答

6

你可以看看参数化测试,如example

你也可以use theories这在很多情况下更方便。

+3

理论上看起来比参数化测试更清洁/更好,至少在实施中。但是,JUnit没有像NUnit的'[TestCase]'注释那样干净,可以让你指定每种测试方法,这太糟糕了。 – Allan 2013-04-08 19:35:33

0

我建议你为每一个(重载)函数定义创建一个不同的单元测试,因为可以证明你正在测试其实不同的函数。例如:

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) 
} 
} 
+0

如果OP想要的是两次调用具有不同参数的相同方法,那么这就是我如何阅读他的问题。他说他有“一种方法”。当然,在这种情况下,您仍然可以编写不同的测试,并以正在测试的条件命名。 – CPerkins 2011-04-26 17:47:13

+0

好的,我对这个问题的理解似乎是错误的。对这个频道的所有人表示歉意,我认为他的意思是他的功能接受不同的论点(即超载) - 因此是上述解决方案。 – Liv 2011-04-26 17:51:02

+0

不需要道歉。我认为你的基本建议仍然有效,为了解决同一方法中具有不同值的一组调用的不同命名测试的重写。 – CPerkins 2011-04-26 19:39:27