Я создаю модуль в проекте Gradle, который не имеет SpringBootApplication и содержит RestController, который объединяется в другой модуль, содержащий Spring-Web и приложение. Я вручную протестировал конечные точки в полностью развернутом приложении, и все работает нормально.Я собираюсь написать набор интеграционных тестов для RestController без каких-либо макетов. Пока у меня есть
@PostgresRepositoryTest(JobsRepository.class)
@EnableConfigurationProperties(JobRunrProperties.class)
@SpringBootTest(webEnvironment = RANDOM_PORT)
@ContextConfiguration(classes = {JobServiceTestConfig.class, JobController.class})
@Tag("Jobs")
@EnableWebMvc
class JobControllerIntegrationTest {
@LocalServerPort
private int port;
@BeforeEach
void setUp() {
RestAssured.baseURI = "http://localhost";
RestAssured.port = port;
RestAssured.basePath = "/rest/jobs/v1";
RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
}
@Test
void shouldGetJobStatus() {
var jobPagedResponse = given().get("/jobs")
.then()
.log()
.all()
.statusCode(OK.getStatusCode())
.extract()
.body()
.as(JobPagedResponse.class);
assertThat(jobPagedResponse).isNotNull();
}
}
Журналы показывают, что сопоставления запросов загружены
2024-11-30 16:57:33.077 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer []
2024-11-30 16:57:33.621 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' []
2024-11-30 16:57:33.638 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer []
2024-11-30 16:57:33.713 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' []
2024-11-30 16:57:33.865 [main] TRACE o.s.w.s.m.m.a.RequestMappingHandlerMapping -
c.c.j.r.v.JobController:
{POST [/rest/jobs/v1/jobs], consumes [application/json], produces [application/json]}: createSelfManagedJob(JobNew)
{POST [/rest/jobs/v1/jobs/{jobId}/updateProgress], consumes [application/json], produces [application/json]}: updateSelfManagedJob(UUID,JobUpdate)
{GET [/rest/jobs/v1/jobs], produces [application/json]}: findJobs(String,String,List,List,List,UUID,String,String,String,Integer)
{DELETE [/rest/jobs/v1/jobs/{jobId}]}: deleteJob(UUID)
{GET [/rest/jobs/v1/jobs/{jobId}], produces [application/json]}: getJob(UUID) []
2024-11-30 16:57:33.868 [main] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - 5 mappings in 'requestMappingHandlerMapping' []
2024-11-30 16:57:33.871 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Detected 0 mappings in 'beanNameHandlerMapping' []
2024-11-30 16:57:33.874 [main] TRACE o.s.w.s.f.s.RouterFunctionMapping - 0 RouterFunction(s) in 'routerFunctionMapping' []
2024-11-30 16:57:33.889 [main] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerAdapter - ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice []
2024-11-30 16:57:33.910 [main] DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice []
2024-11-30 16:57:34.552 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"] []
2024-11-30 16:57:34.560 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/' []
2024-11-30 16:57:34.562 [main] TRACE o.s.w.s.resource.ResourceUrlProvider - No resource handling mappings found []
2024-11-30 16:57:34.562 [main] INFO c.c.j.r.v.JobControllerIntegrationTest - Started JobControllerIntegrationTest in 5.009 seconds (process running for 5.66) []
и вывод RestAssured
HTTP/1.1 404
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 683
Date: Sat, 30 Nov 2024 16:57:35 GMT
Keep-Alive: timeout=60
Connection: keep-alive
HTTP Status 404 – Not Found
body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}
HTTP Status 404 – Not Found
Type Status Report
Description
The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/10.1.33
Request method: GET
Request URI: http://localhost:8080/rest/jobs/v1/jobs
Proxy:
Request params:
Query params:
Form params:
Path params:
Headers: Accept=*/*
Cookies:
Multiparts:
Body:
Подробнее здесь: https://stackoverflow.com/questions/792 ... eturns-404
Spring Boot Test RestController возвращает 404 ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1733058425
Anonymous
Я создаю модуль в проекте Gradle, который не имеет SpringBootApplication и содержит RestController, который объединяется в другой модуль, содержащий Spring-Web и приложение. Я вручную протестировал конечные точки в полностью развернутом приложении, и все работает нормально.[b]Я собираюсь написать набор интеграционных тестов для RestController без каких-либо макетов. Пока у меня есть
@PostgresRepositoryTest(JobsRepository.class)
@EnableConfigurationProperties(JobRunrProperties.class)
@SpringBootTest(webEnvironment = RANDOM_PORT)
@ContextConfiguration(classes = {JobServiceTestConfig.class, JobController.class})
@Tag("Jobs")
@EnableWebMvc
class JobControllerIntegrationTest {
@LocalServerPort
private int port;
@BeforeEach
void setUp() {
RestAssured.baseURI = "http://localhost";
RestAssured.port = port;
RestAssured.basePath = "/rest/jobs/v1";
RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
}
@Test
void shouldGetJobStatus() {
var jobPagedResponse = given().get("/jobs")
.then()
.log()
.all()
.statusCode(OK.getStatusCode())
.extract()
.body()
.as(JobPagedResponse.class);
assertThat(jobPagedResponse).isNotNull();
}
}
Журналы показывают, что сопоставления запросов загружены
2024-11-30 16:57:33.077 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer []
2024-11-30 16:57:33.621 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' []
2024-11-30 16:57:33.638 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer []
2024-11-30 16:57:33.713 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' []
2024-11-30 16:57:33.865 [main] TRACE o.s.w.s.m.m.a.RequestMappingHandlerMapping -
c.c.j.r.v.JobController:
{POST [/rest/jobs/v1/jobs], consumes [application/json], produces [application/json]}: createSelfManagedJob(JobNew)
{POST [/rest/jobs/v1/jobs/{jobId}/updateProgress], consumes [application/json], produces [application/json]}: updateSelfManagedJob(UUID,JobUpdate)
{GET [/rest/jobs/v1/jobs], produces [application/json]}: findJobs(String,String,List,List,List,UUID,String,String,String,Integer)
{DELETE [/rest/jobs/v1/jobs/{jobId}]}: deleteJob(UUID)
{GET [/rest/jobs/v1/jobs/{jobId}], produces [application/json]}: getJob(UUID) []
2024-11-30 16:57:33.868 [main] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - 5 mappings in 'requestMappingHandlerMapping' []
2024-11-30 16:57:33.871 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Detected 0 mappings in 'beanNameHandlerMapping' []
2024-11-30 16:57:33.874 [main] TRACE o.s.w.s.f.s.RouterFunctionMapping - 0 RouterFunction(s) in 'routerFunctionMapping' []
2024-11-30 16:57:33.889 [main] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerAdapter - ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice []
2024-11-30 16:57:33.910 [main] DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice []
2024-11-30 16:57:34.552 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"] []
2024-11-30 16:57:34.560 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/' []
2024-11-30 16:57:34.562 [main] TRACE o.s.w.s.resource.ResourceUrlProvider - No resource handling mappings found []
2024-11-30 16:57:34.562 [main] INFO c.c.j.r.v.JobControllerIntegrationTest - Started JobControllerIntegrationTest in 5.009 seconds (process running for 5.66) []
и вывод RestAssured
HTTP/1.1 404
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 683
Date: Sat, 30 Nov 2024 16:57:35 GMT
Keep-Alive: timeout=60
Connection: keep-alive
HTTP Status 404 – Not Found
body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}
HTTP Status 404 – Not Found
Type[/b][b] Status Report
Description[/b]
The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/10.1.33
Request method: GET
Request URI: http://localhost:8080/rest/jobs/v1/jobs
Proxy:
Request params:
Query params:
Form params:
Path params:
Headers: Accept=*/*
Cookies:
Multiparts:
Body:
Подробнее здесь: [url]https://stackoverflow.com/questions/79240103/spring-boot-test-restcontroller-returns-404[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия