Мой модульный тест getSerieByIdSimplifiedTest при загрузке Spring с J unit 5 не работает, мой контроллер и служба прекрасно реализованы, если я удалю проверку из своего теста, все работает нормально... Я не понимаю проблему и как чтобы решить эту проблему!
Я получаю сообщение об ошибке в serieService, когда идеально реализую для этого @MockBean, надеюсь на вашу помощь
package com.garmanaz.vidaria.controllers;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.garmanaz.vidaria.entities.Serie;
import com.garmanaz.vidaria.services.SerieService;
import com.garmanaz.vidaria.utils.JWT.JwtRequestFilter;
import com.garmanaz.vidaria.utils.JWT.JwtTokenUtil;
import org.junit.jupiter.api.BeforeEach;
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.boot.test.mock.mockito.MockBean;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.mockito.Mockito.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@WebMvcTest(controllers = SerieController.class)
@WithMockUser(username = "john", roles = {"USER"})
public class SerieControllerTest {
@Autowired
private MockMvc mockMvc;
@Autowired
private ObjectMapper objectMapper;
@MockBean
private SerieService serieService;
@MockBean
private JwtTokenUtil jwtTokenUtil;
@MockBean
private JwtRequestFilter jwtRequestFilter;
@Autowired
private SerieController serieController;
@MockBean
private RestTemplateBuilder restTemplateBuilder;
@BeforeEach
void setUp() {
ReflectionTestUtils.setField(serieController, "serieService", serieService);
}
@Test
void verifyMockInjection() {
SerieService injectedService = (SerieService) ReflectionTestUtils.getField(serieController, "serieService");
System.out.println("Injected SerieService: " + injectedService);
assertSame(injectedService, serieService, "The injected service is not the mock");
}
@Test
void getSerieByIdSimplifiedTest() throws Exception {
long serieId = 1L;
Serie mockSerie = Serie.builder()
.id(serieId)
.title("Test Serie")
.build();
when(serieService.getSeriesById(serieId)).thenReturn(mockSerie);
mockMvc.perform(get("/series/{serieId}", serieId)
.contentType("application/json"))
.andDo(print())
.andExpect(status().isOk());
verify(serieService, times(1)).getSeriesById(1L);
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... riesbyid1l
Разыскивается, но не вызывается: vidaria.services.SerieService#0 bean.getSeriesById(1L ); ⇐ JAVA
Программисты JAVA общаются здесь
1731720902
Anonymous
Мой модульный тест getSerieByIdSimplifiedTest при загрузке Spring с J unit 5 не работает, мой контроллер и служба прекрасно реализованы, если я удалю проверку из своего теста, все работает нормально... Я не понимаю проблему и как чтобы решить эту проблему!
Я получаю сообщение об ошибке в serieService, когда идеально реализую для этого @MockBean, надеюсь на вашу помощь
package com.garmanaz.vidaria.controllers;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.garmanaz.vidaria.entities.Serie;
import com.garmanaz.vidaria.services.SerieService;
import com.garmanaz.vidaria.utils.JWT.JwtRequestFilter;
import com.garmanaz.vidaria.utils.JWT.JwtTokenUtil;
import org.junit.jupiter.api.BeforeEach;
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.boot.test.mock.mockito.MockBean;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.mockito.Mockito.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@WebMvcTest(controllers = SerieController.class)
@WithMockUser(username = "john", roles = {"USER"})
public class SerieControllerTest {
@Autowired
private MockMvc mockMvc;
@Autowired
private ObjectMapper objectMapper;
@MockBean
private SerieService serieService;
@MockBean
private JwtTokenUtil jwtTokenUtil;
@MockBean
private JwtRequestFilter jwtRequestFilter;
@Autowired
private SerieController serieController;
@MockBean
private RestTemplateBuilder restTemplateBuilder;
@BeforeEach
void setUp() {
ReflectionTestUtils.setField(serieController, "serieService", serieService);
}
@Test
void verifyMockInjection() {
SerieService injectedService = (SerieService) ReflectionTestUtils.getField(serieController, "serieService");
System.out.println("Injected SerieService: " + injectedService);
assertSame(injectedService, serieService, "The injected service is not the mock");
}
@Test
void getSerieByIdSimplifiedTest() throws Exception {
long serieId = 1L;
Serie mockSerie = Serie.builder()
.id(serieId)
.title("Test Serie")
.build();
when(serieService.getSeriesById(serieId)).thenReturn(mockSerie);
mockMvc.perform(get("/series/{serieId}", serieId)
.contentType("application/json"))
.andDo(print())
.andExpect(status().isOk());
verify(serieService, times(1)).getSeriesById(1L);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79194363/wanted-but-not-invoked-vidaria-services-serieservice0-bean-getseriesbyid1l[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия