首页  编辑  

Mockito Mock 服务Service接口方法或者实体类方法

Tags: /Java/   Date Created:
考虑如下接口:
  1. interface DemoService {
  2.   void log(String name, Object o1, Object o2);
  3. }
接口实现类略。

现在有个组件使用了 Demo Service
  1. @Component
  2. public class UserService {
  3.    @Autowired
  4.    DemoService demoService;
  5.    public void create(User user) {
  6.       demoService.log("aa", user, null);
  7.       // .....
  8.    }
  9. }

如何编写测试用例的时候, Mock掉Demo.log呢?
  • 首先在 UserServiceTest.java中,定义 @InjectMocks private userService;
  • 然后定义 @org.mockito.mock DemoService demoService;
  • 最后在测试代码调用 userService.create之前,写如下代码:
    doNothing().when(demoService).log(Mockito.anyString(), Mockito.any(), Mockito.any());

如果要Mock实体类,方法类似,同样先用 @org.mockito.Mock XXXclass xxx;然后用:
Mockito.when(xxx.被Mock的方法名("参数列表")).thenReturn(xxxx)); 即可。