Мы пытаемся провести тесты Spring Contract с нашим приложением.Наше приложение использует JPA для доступа к базе данных.В нашем приложении мы пытаемся смоделировать возврат из класса хранилища базы данных.Тем не менее, Spring пытается инициализировать JPA по мере запуска приложения, поэтому он пытается подключиться к базе данных, даже если мы никогда не хотим обращаться к базе данных.
Есть ли способ, которым мы можем отключить JPA отинициализируется?Мы уже используем это в нашем application.yml, но этого недостаточно, чтобы остановить JPA:
spring:
autoconfigure:
exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
Вот наш базовый класс для контракта:
@ExtendWith({SpringExtension.class, MockitoExtension.class})
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
@AutoConfigureMessageVerifier
public class BaseContractTest {
@Autowired
MobileWearController mobileWearController;
@MockBean
UserDeviceRepository userDeviceRepository;
@BeforeEach
public void setup() {
userDeviceRepository = mock(UserDeviceRepository.class);
UserDevice mockUserDevice = UserDevice.builder()
.scorecardId("XYZ123")
.accessToken("ACCESSABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
.refreshToken("REFRESHABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789").build();
// mock return data from database here
when(userDeviceRepository.getUserTokens(anyString())).thenReturn(java.util.Optional.of(mockUserDevice));
StandaloneMockMvcBuilder standaloneMockMvcBuilder
= MockMvcBuilders.standaloneSetup(mobileWearController);
standaloneMockMvcBuilder.setControllerAdvice(GlobalExceptionMapper.class);
RestAssuredMockMvc.standaloneSetup(standaloneMockMvcBuilder);
}
}
Есть идеи?