【发布时间】:2017-11-16 17:07:59
【问题描述】:
我有一个非常全面的方法。在此方法中调用了几个其他方法,每个方法都依赖于前一个方法。
我的问题是:使用 JUnit 测试这种复杂方法的最佳方法是什么?
我可以只创建一个@Test 方法并在此方法中调用其他方法吗?例如:
@Test
public void testRun(){
testMethod1();
testMethod2();
...
}
testMethod1(){
assertNotEquals();
...
}
我不敢相信它这么容易。自己测试每种方法不是更好吗?但是我该如何实现呢?他们有什么最佳做法吗?
但也许这是正确的方法。
感谢您的任何建议!:)
【问题讨论】:
-
是什么让您认为您不能单独测试每种方法?应该可以在之前设置某个状态并在之后检查结果。
-
你的方法不应该太复杂。保留您的方法as short as possible。然后测试它们和维护你的代码库会更容易。
-
我猜他们是私人的。但是,是的,当您在编写测试时遇到困难时,这表明代码可能质量不高
-
首先你应该问问自己为什么它这么复杂,你是否可以拆分它。然后,通常“其他方法”是私有的,所以你不能直接测试它们。如果可以,当然应该这样做。
-
无论您的方法是否复杂,或者在内部调用许多其他方法都无关紧要:测试返回值和/或调用它的相关副作用。