如何使用JUnit和Mockito测试void方法?



我的void方法改变了类中的boolean变量值。DI怎么检查呢?

:

  • 模拟类对象
  • 使用适当的参数调用方法
  • 检查了实例变量

但是这不会改变实例变量的值。我该怎么做呢?

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());
  • 不要模拟你要测试的类
  • DO模拟与您要测试的类交互的类

如果你想测试a类中的字段从false变为true,你真正想做的是(我没有你实际的构造函数,我只是猜测):

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());

这个布尔值似乎是一个内部状态。这不是你可以直接用单元测试测试的东西,除非你把它公开,或者通过影响另一个方法的行为可以检测到。

相关内容

  • 没有找到相关文章

最新更新