Тест JUnit всегда возвращает ноль - PullRequest
0 голосов
/ 30 декабря 2018

Я пишу тестовый пример JUnit для моего кода, но Mockito всегда возвращает null

@Component
public class ConnectorImpl {

    public String returnString(String inte) {

        String x = testing();
        return x;
    }

    public String testing() {
        return "test";
    }
}

Тестовый класс

@RunWith(MockitoJUnitRunner.class)
public class ConnectorImplTest  {

    @Mock public ConnectorImpl connector;

    @Test
    public void testLoggedInRefill() throws Exception {

        Mockito.when(connector.testing()).thenReturn("test");


        String x = connector.returnString("8807");

        assertEquals("8807", x);
    }

}

Когда я звоню connector.returnString("8807");всегда возвращается null.Что-то я делаю не так?Я новичок в JUnit.

Ответы [ 3 ]

0 голосов
/ 30 декабря 2018

Согласно вашему коду, вы издеваетесь над ConnectorImpl

Так что это пустой объект, и это означает, что вы должны специально when(...).then(...) любую функциональность, которую вы хотите протестировать.

Кстати - если вы тестируете ConnectorImpl, то вам не следует издеваться над ним, а на самом деле использовать настоящий боб.Вы должны высмеять бины, которые использует ConnectorImpl.

Поэтому я бы посоветовал, чтобы ваш код выглядел примерно так:

@RunWith(MockitoJUnitRunner.class)
public class ConnectorImplTest  {

    public ConnectorImpl connector = new ConnectorImpl(...);

    @Test
    public void testLoggedInRefill() throws Exception {
        String x = connector.returnString("8807");
        assertEquals("8807", x);
    }
}
0 голосов
/ 30 декабря 2018

Вы издеваетесь над объектом и не указываете какое-либо поведение для метода returnString смоделированного объекта.Как и в случае с test (), вы можете сделать то же самое для метода returnString ():

when(connector.returnString(anyString())).thenReturn("text")

С другой стороны, зачем вам макет этого класса?

0 голосов
/ 30 декабря 2018

Один из способов проверить свой метод returnString - это:

// mock 'returnString' method call
Mockito.when(connector.returnString(anyString()).thenReturn("test"); 
// assert that you've mocked succesfully
assertEquals("test", connector.returnString("8807"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...