Java 如何使用JUnit和Mockito测试void方法?
我的Java 如何使用JUnit和Mockito测试void方法?,java,unit-testing,mockito,junit4,Java,Unit Testing,Mockito,Junit4,我的void方法更改类中的boolean变量值。我怎么检查 我有: 模拟类对象 使用适当的参数调用该方法 检查了实例变量 但这不会改变实例变量的值。我该怎么做 ReferenceLettersBean rf = Mockito.mock(ReferenceLettersBean.class); rf.setBoolcheck(false); Mockito.doNothing().when(rf).checkForDuplicates(anyString(), anySt
void
方法更改类中的boolean
变量值。我怎么检查
我有:
- 模拟类对象
- 使用适当的参数调用该方法
- 检查了实例变量
ReferenceLettersBean rf = Mockito.mock(ReferenceLettersBean.class);
rf.setBoolcheck(false);
Mockito.doNothing().when(rf).checkForDuplicates(anyString(), anyString(), anyString());
rf.checkForDuplicates("abcd@emal.com","abd@gmail.com","abcd@gmail.com");
assertEquals(true,rf.getBoolcheck());
此布尔值似乎是一个内部状态。这不是可以用单元测试直接测试的东西,除非你将它公开,或者通过影响另一种方法的行为可以检测到它。
- 不要模仿你要测试的课程
- 模拟与要测试的类交互的类
对在上面添加了代码
SomeDependency dependency = mock(SomeDependency.class);
// Make a REAL ReferenceLettersBean
ReferenceLettersBean bean = new ReferenceLettersBean(dependency);
// now make your test
rf.checkForDuplicates("abcd@emal.com","abd@gmail.com","abcd@gmail.com");
assertEquals(true,rf.getBoolcheck());