Могут ли тесты иметь перекрывающиеся контексты Spring Boot Test? - PullRequest
0 голосов
/ 01 апреля 2020

У меня миссия по сокращению времени сборки нашего проекта, и я заметил, что есть некоторые @BootIntegrationTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) тесты, которые восстанавливают контекст Spring каждый раз из-за использования @MockBean (который загрязняет контекст ).

Я пытался заменить вышеупомянутые bean-компоненты @Import на класс, который выглядит как

@Configuration
public class MyTestConfiguration {

    @Bean
    @Primary
    public MyService myService() {
        return mock(MyService.class);
    }
}

Однако в будущем вызов метода when (myService) ... завершится неудачей. со знакомой ошибкой «этот объект не фиктивный», потому что Spring обернул макет собственным классом.

Как мне обойти эту проблему? Кроме того, если AIntegrationTest требует загрузки дополнительного AITConfiguration и BIntegrationTest требует загрузки BITConfiguration, могут ли они по-прежнему использовать один и тот же основной контекст Spring Boot, не портя его, чтобы избежать дополнительного времени запуска?

Заранее спасибо:)

...