Я разрабатываю в экосистеме Spring и у меня есть 2 метода, которые я могу протестировать.
@Configuration
@ComponentScan( "com.ratepay.iris.ella" )
public class EllaConfiguration {
private PostConnectionConfiguration<EllaResponseDto> createConnectionConfiguration( final Environment env ) {
return new SimplePostConnectionConfiguration<>( env.getRequiredProperty( URI_CONFIG_KEY ), EllaResponseDto.class );
}
private SimpleTimeoutConfiguration createTimeoutConfiguration( final Environment env ) {
return new SimpleTimeoutConfiguration( env.getProperty( CONNECTION_TIMEOUT_CONFIG_KEY, Integer.class, DEFAULT_CONNECTION_TIMEOUT ),
env.getProperty( READ_TIMEOUT_CONFIG_KEY, Integer.class, DEFAULT_READ_TIMEOUT ) );
}
// I have the timeoutConfiguration method here
}
У меня есть 3-й метод (в том же классе), который использует изначально предоставленные 2 метода.
@Bean( name = ELLA_CONNECTOR_BEAN_NAME )
public EntityServiceConnectable<EllaResponseDto> timeoutConfiguration( final Environment env ) {
return ServiceConnectorBuilder.create( createConnectionConfiguration( env ) ).timeout( createTimeoutConfiguration( env ) ).build();
}
Мои тесты для первоначально предоставленных 2 методов:
@Test
public void testCreateConnectionConfigurationReturnsCorrectConnectionConfig() throws Exception {
EllaConfiguration elc = spy( EllaConfiguration.class );
assertEquals( SimplePostConnectionConfiguration.class,
( Whitebox.invokeMethod( elc, "createConnectionConfiguration", environment ) ).getClass() );
}
@Test
public void testCreateTimeoutConfigurationCreatesCorrectTimeoutConfiguration() throws Exception {
EllaConfiguration elc = spy( EllaConfiguration.class );
assertEquals( SimpleTimeoutConfiguration.class,
( Whitebox.invokeMethod( elc, "createTimeoutConfiguration", environment ) ).getClass() );
}
Как проверить, что метод timeoutConfiguration
поставляется с аннотацией @Bean
?