【发布时间】:2021-05-28 13:44:50
【问题描述】:
代码文件 - originalFile.java
private setValueMethod(param1, param2) {
if (param1.getIsMale()) { // Its a boolean
param1.setCity(param2);
} else {
param1.setCity(param1.getOtherCity());
}
}
originalFileTest.java
@Test
public void testSetValueMethod() {
// some previous line setting mock value
when(param1.getIsMale()).then ('.... How to do what i have done in real code file...')
// How to implement if/else in JUnit tests
}
如何在 JUnits 中实现 if/else?
【问题讨论】:
-
'如何在 JUnit 测试中实现基本的 if/else?' - 不清楚你的意思。
-
@Lesiak - 我的意思是如何放置条件测试用例
-
1.您设置
param1的状态,以便执行其中一个分支。这可能是显而易见的。 2. 你可能根本不需要嘲笑——如果param1和param2很容易构造,那么在真实对象上检查setValueMethod可能更容易。 3.setValueMethod是私人的。您通常不会测试私有方法。您可以通过公共接口对其进行测试。更改为包私有是可以接受的。由于该方法似乎不依赖于对象状态,因此更改为静态可能是可以接受的。另一种技术是将方法提取到另一个对象(但这样一个微不足道的对象不值得)