Junit最佳实践:调用多个私有方法的公共方法

Him*_*dav 5 java junit unit-testing junit4

我开始为遗留代码库编写JUnit测试用例.其中一个公共方法有多个if语句,并且基于一个条件,它调用不同的私有方法.
我应该只编写一种测试方法并测试所有条件吗?每种情况的一种方法?

如果我为每个if条件编写单独的方法,我不会失去一致性吗?

测试私有方法的方法是什么?私有方法逻辑可能比公共方法更复杂.

Nat*_*hes 4

方法的数量取决于你要测试的场景的数量,与被测试的东西有什么方法无关。

如果每个场景都使用自己的代码来设置,那么您将为每个场景获得一个测试方法。如果您可以参数化测试,那么您可能可以拥有一种测试方法并为每个场景传递不同的数据。

重要的是,对于每个输入组合,您希望测试的成功或失败独立于其他测试。如果将所有测试硬塞到一个方法中,那么这种情况就不会发生,第一个测试失败将阻止其余测试运行。