Как тестировать контроллеры в spring boot?

Пользователь

от jakayla , в категории: Java , 2 года назад

Как тестировать контроллеры в spring boot?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vladimir , 2 года назад

@jakayla 

В Spring Boot можно использовать фреймворк для тестирования контроллеров Spring MVC, называемый Spring Boot Test. Этот фреймворк позволяет настроить и запустить тесты контроллеров с использованием реализации сервера, например, Tomcat или Jetty, и выпол

Пользователь

от johnpaul.blick , год назад

@jakayla 

Можно настроить тесты контроллеров с использованием класса MockMvc, который предоставляет удобные методы для выполнения HTTP-запросов к контроллерам и проверки полученных ответов.


Ниже приведен пример теста контроллера в Spring Boot:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;

@WebMvcTest(YourController.class)
public class YourControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void testGet() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/your-endpoint")
                .contentType(MediaType.APPLICATION_JSON))
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andExpect(MockMvcResultMatchers.content().json("expected-response-json"));
    }
}


В этом примере мы используем аннотацию @WebMvcTest, чтобы настроить тест только для контроллера YourController. Мы также внедряем MockMvc для выполнения запросов.


В методе testGet мы выполняем GET-запрос к /your-endpoint и ожидаем, что полученный ответ будет иметь код состояния 200 (OK) и содержать JSON-ответ, соответствующий заданному expected-response-json.


Вы можете использовать другие методы MockMvcRequestBuilders, чтобы отправлять другие типы запросов (POST, PUT и т. д.) с разными параметрами и заголовками.


Методы MockMvcResultMatchers позволяют проверять ожидаемые значения, такие как код состояния, содержимое и заголовки ответа.


Это лишь простой пример, и существует множество других возможностей тестирования контроллеров в Spring Boot. Вы можете изучить документацию Spring Boot Test для получения более подробной информации о различных возможностях и настройках для тестирования контроллеров.