Переопределение bean-компонентов в интеграционных тестахJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Переопределение bean-компонентов в интеграционных тестах

Сообщение Anonymous »

Для моего приложения Spring-Boot я предоставляю RestTemplate через файл @Configuration, чтобы я мог добавить разумные значения по умолчанию (например, тайм-ауты). Для моих интеграционных тестов я хотел бы высмеять RestTemplate, поскольку я не хочу подключаться к внешним сервисам — я знаю, каких ответов ожидать. Я попробовал предоставить другую реализацию в пакете интеграционного теста в надежде, что последняя переопределит реальную реализацию, но при проверке логов все наоборот: реальная реализация переопределяет тестовую.
Как я могу убедиться, что используется именно тот файл из TestConfig?


Это мой файл конфигурации :

@Configuration
public class RestTemplateProvider {

private static final int DEFAULT_SERVICE_TIMEOUT = 5_000;

@Bean
public RestTemplate restTemplate(){
return new RestTemplate(buildClientConfigurationFactory());
}

private ClientHttpRequestFactory buildClientConfigurationFactory() {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setReadTimeout(DEFAULT_SERVICE_TIMEOUT);
factory.setConnectTimeout(DEFAULT_SERVICE_TIMEOUT);
return factory;
}
}


Интеграционный тест:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestConfiguration.class)
@WebAppConfiguration
@ActiveProfiles("it")
public abstract class IntegrationTest {}


Класс TestConfiguration:

@Configuration
@Import({Application.class, MockRestTemplateConfiguration.class})
public class TestConfiguration {}


И, наконец, MockRestTemplateConfiguration

@Configuration
public class MockRestTemplateConfiguration {

@Bean
public RestTemplate restTemplate() {
return Mockito.mock(RestTemplate.class)
}
}


Подробнее здесь: https://stackoverflow.com/questions/357 ... tion-tests
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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