Метод пробного тестирования с возвращаемым значением

Как написать тестовый тест для метода с возвращаемым значением (экземпляр класса)

userService

public User getUserInfo(String userId) {
        RestTemplate restTemplate = new RestTemplate();
        String url = http:127.0.0.1 + userId ;
        return restTemplate.getForObject(url, User.class);
}

public class TimUser {
    private String id = null;
    private String userName = null;
    **********GET & SET method***********;
}

 @Mock
private userService userService;
private String userId;


@Before
public void set_up(){
    MockitoAnnotations.initMocks(this);
    userId = "";
}

@Test
public void getUserInfo(){

    userService.getUserInfo(userId)

}

Я не знаю, как написать тестовый пример для такого метода, может ли кто-нибудь поделиться некоторыми идеями?

Возможно, я не очень хорошо понял вопрос, но из того, что я вижу, похоже, что вы пытаетесь проверить свой макет? На самом деле я не понимаю, зачем вам вообще нужен макет, поскольку результат метода getUserInfo (), похоже, зависит только от ввода.

Matteo Ugolotti 11.01.2019 16:53

Вы не издеваетесь над классом, который тестируете. Я думаю, вам нужно использовать @InjectMocks в своем пользовательском сервисе и имитировать restTemplate.

Aditya Narayan Dixit 11.01.2019 17:35
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
162
2

Ответы 2

Вы можете использовать when (mock.method) .thenReturn (value) из mockito.

when(userservice.getUserInfo(eq(this.userId)).thenReturn(<your value here>)
Mockito.when(userService.getUserInfo(userId)).thenReturn(value);

Не совсем уверен, чего вы здесь пытаетесь достичь. Если тестируемый вами класс - UserService, вам не следует издеваться над ним. Вы должны вызывать getUserInfo в своем тесте и утверждать, что возвращаемое значение совпадает с вашими ожиданиями.

Другие вопросы по теме