ThenCallRealMethod от Mockito, не вызывающий публичный метод - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь вызвать реальный метод в моем классе тестирования. Есть два метода: public void m2 () и другой private void m3 () в классе mapper. но здесь только приватный метод получает выполнение, а публичный метод не получает вызов. Пример кода как.

public class Service {

    @Autowired
    Mapper mapper;

    public void m1(String s){
        System.out.println(s);
        mapper.m1(s);
    }
}

public class Mapper {

    public String m1(String s){
        System.out.println("inside m1 method" +s);
        m2();
        m3();
        return s;
    }

    public void m2(){
        System.out.println("inside m2 public method");
    }

    private void m3(){
        System.out.println("insid m3 private method");
    }
}

@RunWith(MockitoJUnitRunner.class)
public class Testing {

    @Mock
    Mapper mapper;

    @InjectMocks
    Service service;


    @Test
    public void test(){
    when(mapper.m1(Mockito.any(String.class))).thenCallRealMethod();

    service.m1("Check");
    }

    /**
     * @param m1
     */

}

1 Ответ

0 голосов
/ 11 января 2019

Открытый метод не вызывается, потому что вы не указываете макету делать это.

Закрытый метод вызывается, потому что mockito не влияет на закрытые методы (для этого нужно вызвать темную магию PowerMock).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...