Mockito spy doReturn不使用超类方法

时间:2016-03-11 22:21:50

标签: java junit mockito

我有一个类就是spring security CoreRememberMeService的子类。

public class CustomRememberService extends CoreRememberMeService`{

    @Override Authentication autoLogin(....) {
         // ...
         user = processAutoLoginCookie(....) //this method is in super class
    }

当我尝试运行我的JUnit时,我需要存根这个超类metod' processAutoLoginCookie'喜欢

Mockito.spy(customeCoreRememberService);    
Mockito.doReturn(user).when(customeCoreRememberService).processAutoLoginCookie(...);

我只是不想在测试期间调用超类方法。但它不起作用,每次进入超级课程而不仅仅是重新使用用户'按照我的期望。任何人都可以指出,为什么我不能存根?

1 个答案:

答案 0 :(得分:3)

您需要存储spy(object)方法的结果。传入的对象不变,间谍是返回的对象。

CustomRememberService spy = Mockito.spy(customeCoreRememberService);
Mockito.doReturn(user).when(spy).processAutoLoginCookie(...);