Очевидно, вы загружаете класс конфигурации для имитации beans, это мешает другим частям Spring Boot и, вероятно, приводит к частичной загрузке вашего приложения. Я подозреваю, что доступен только фиктивный сервис.
Вместо тестовой конфигурации используйте @MockBean
, чтобы создать имитацию сервиса и зарегистрировать на нем поведение.
@SpringBootTest
@AutoConfigureMockMvc
public class AdtechControllerTest {
private static final ObjectMapper OBJECT_MAPPER = JsonUtil.getJackson();
@Autowired
private MockMvc mockMvc;
@MockBean
private AdtechService mockService;
@BeforeEach
public void setUp() {
when(mockService.yourMethod(any()).thenReturn(new AdtechResponseDto("123"));
}
@Test
public void testSubmitSession() throws Exception {
// Your original test method
}
}
Если единственное вы хотите проверить, является ли ваш контроллер, вы также можете рассмотреть возможность использования @WebMvcTest
вместо @SpringBootTest
.
@WebMvcTest(AdTechController.class)
public class AdtechControllerTest {
private static final ObjectMapper OBJECT_MAPPER = JsonUtil.getJackson();
@Autowired
private MockMvc mockMvc;
@MockBean
private AdtechService mockService;
@BeforeEach
public void setUp() {
when(mockService.yourMethod(any()).thenReturn(new AdtechResponseDto("123"));
}
@Test
public void testSubmitSession() throws Exception {
// Your original test method
}
}
Это загрузит уменьшенную версию контекста (только веб-части) и будет быстрее работать.