Протестируйте метод Spring @Bean - PullRequest
0 голосов
/ 10 июня 2019

Я разрабатываю в экосистеме 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?

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