Конфликты с тестами Spring Contract и JPA - PullRequest
0 голосов
/ 20 мая 2019

Мы пытаемся провести тесты 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);
    }
}

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...