我有一个方法,并希望用不同的值来测试它。我的问题是:如何编写一个JUnit测试来测试具有不同值的相同方法?JUnit - 如何测试具有不同值的方法?
回答
为此,JUnit4支持参数化测试。
请参阅this tutorial。
你可以看看参数化测试,如example。
你也可以use theories这在很多情况下更方便。
我建议你为每一个(重载)函数定义创建一个不同的单元测试,因为可以证明你正在测试其实不同的函数。例如:
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想要的是两次调用具有不同参数的相同方法,那么这就是我如何阅读他的问题。他说他有“一种方法”。当然,在这种情况下,您仍然可以编写不同的测试,并以正在测试的条件命名。 – CPerkins 2011-04-26 17:47:13
好的,我对这个问题的理解似乎是错误的。对这个频道的所有人表示歉意,我认为他的意思是他的功能接受不同的论点(即超载) - 因此是上述解决方案。 – Liv 2011-04-26 17:51:02
不需要道歉。我认为你的基本建议仍然有效,为了解决同一方法中具有不同值的一组调用的不同命名测试的重写。 – CPerkins 2011-04-26 19:39:27
- 1. 如何使用Junit测试工具测试void方法?
- 2. Junit测试私有方法
- 3. JUnit测试方法,测试add方法
- 4. JUNIT - 测试方法
- 5. 用于同步方法的JUnit测试
- 6. junit测试方法调用不同类的另一种方法
- 7. 方法的Java JUnit测试
- 8. 如何使用JUnit测试方法?
- 9. 如何在JUnit中测试void方法
- 10. 具有图形参数的方法的Junit测试用例
- 11. JUnit具有随机性质的测试方法
- 12. 具有多个@Test方法的Junit测试类
- 13. 如何忽略JUnit测试方法本身内的测试
- 14. Java - JUnit - 测试方法 - MultipleMarkersError
- 15. Junit测试getInstance方法
- 16. junit测试异常方法
- 17. Junit测试空方法
- 18. JUNIT测试void方法
- 19. 如何调用和测试具有相同名称的方法?
- 20. JUnit - 不等待测试方法完成
- 21. 如何测试junit测试
- 22. 的Android的JUnit测试不点火测试方法
- 23. 如何在JUnit测试用例中测试方法中的方法?
- 24. 如何编写JUnit测试的私有方法
- 25. 如何测试不返回任何值的方法
- 26. JUnit测试找不到我想测试的方法
- 27. JUnit测试:静态方法调用到测试方法
- 28. 使用JUnit的测试方法
- 29. 依赖方法的Junit测试
- 30. 无效方法的Junit测试用例
理论上看起来比参数化测试更清洁/更好,至少在实施中。但是,JUnit没有像NUnit的'[TestCase]'注释那样干净,可以让你指定每种测试方法,这太糟糕了。 – Allan 2013-04-08 19:35:33