Создание нового экземпляра внутри класса тестирования с использованием mockito - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь смоделировать новый экземпляр объекта внутри класса, который я тестирую, но я пытаюсь найти способ сделать это, используя Mockito.

Если я правильно понимаю, это может быть что-то, что может быть достигнуто с помощью Powermock, но у меня есть только Mockito, который я могу использовать.

Вот что я пытаюсь сделать

   private class MyTestClass{
      private doSomethingMethod(){
        Object obj = new Object();
        obj.getSomething;
      }
   }

В настоящее время я слежу за классом MyTest и хотел бы смоделировать новый объект, чтобы я мог манипулировать результатом obj.getSomething ()

Это что-то достижимое с помощью Mockito? Спасибо

1 Ответ

0 голосов
/ 25 марта 2019

ИМХО в вашем случае все лучше, чем в Powermock, как вы уже заявили.

В аналогичных случаях я использую решение, которое помещает «немодируемый» код как можно меньше, а @Spy примерно так:

public class SpyTest {
    @Spy
    private MyTestClass myTestClass;

    @Before
    public void initMocks() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void spyInsteadOfPowermock() {
        when(myTestClass.getObject()).thenReturn(Integer.valueOf(3));

        assertThat(myTestClass.doSomethingMethod()).isEqualTo("3");
    }

    class MyTestClass{
        public String doSomethingMethod(){
            return getObject().toString();
        }

        Object getObject() {
            return new Object();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...