Макет пустого метода, вызванного из конструктора - PullRequest
1 голос
/ 21 апреля 2020

У меня тестируется следующий класс. Мне нужно смоделировать вызов метода - instalilishConnection из конструктора, который возвращает void.

 public class ClassToBeTested {



    private ClassToBeMocked classToBeMocked;
    private String name;
    private int age;

    ClassToBeTested(ClassToBeMocked classToBeMocked, String name){
      this.classToBeMocked = classToBeMocked;
      this.name = name;
      age = this.getAge(name);
      this.estabilishConnection();
    }

    private int getAge(String name){
      int age =  (int) classToBeMocked.getNameAgeMap().get(name);
      return age;
    }

    private void estabilishConnection(){
            ``````````````````````````
            ````````````````````````
     }


} 

Ниже приведен метод, который я пробовал. Но это не работает

    @Test
    public void testMethodInClassToBeMocked(){
      ClassToBeMocked mockApp = Mockito.mock(ClassToBeMocked.class);
      HashMap testMap= new HashMap();
      testMap.put("xys", 11);
      Mockito.when(mockApp.getNameAgeMap()).thenReturn(testMap);
      ///PowerMockito for mocking the void method

        PowerMockito.spy(ClassToBeTested.class);
        PowerMockito.doNothing().when(ClassToBeTested.class, "estabilishConnection");

      ClassToBeTested classTest = new ClassToBeTested(mockApp, "xys");

      //Assertion of method in the test class goes here
    }

Как я могу заставить метод установить соединение ничего не делать?

1 Ответ

1 голос
/ 21 апреля 2020

PowerMockito.stub (PowerMockito.method (ClassToBeTested.class, "EstabilishConnection")). ToReturn ("ничто");

Этот вопрос решил проблему

...