Разыскивается, но не вызывается: vidaria.services.SerieService#0 bean.getSeriesById(1L );JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Разыскивается, но не вызывается: vidaria.services.SerieService#0 bean.getSeriesById(1L );

Сообщение 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);
}

}


Подробнее здесь: https://stackoverflow.com/questions/791 ... riesbyid1l
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»