Как протестировать @Configuration и @Bean в приложении Spring Boot?

#java #spring #spring-boot #junit

#Ява #весна #пружинный ботинок #джунит

Вопрос:

Я новичок в Spring Boot. Мне нужно написать тестовые примеры JUnit для нижеприведенного класса. Каков эффективный способ написания модульного теста для аннотации @Configuration и @Bean?

 @Configuration public class ABCConfig {    @Autowired  private AwsApplicationProperties AwsApplicationProperties;  Listlt;AmazonSNSgt; amazonSNSClientArray = new ArrayListlt;gt;();    @Bean  public Listlt;AmazonSNSgt; amazonSnsClient() {  //some code here  }    @Bean  public AWSCredentialsProvider aWSCredentials(String awsAccessKeyId, String awsSecretKeyId) {   return new AWSStaticCredentialsProvider(new BasicAWSCredentials(awsAccessKeyId, awsSecretKeyId));  } }  

Может ли кто-нибудь помочь? Спасибо, что уделили мне время.

Ответ №1:

Вы можете сделать это, используя контекстную конфигурацию и вводя текст приложения или вводя непосредственно свои компоненты @Autowired AWSCredentialsProvider AWSCredentials в качестве свойств. В приведенном ниже примере напрямую используется ApplicationContext.

 @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { ABCConfig.class }) class ABCConfigUnitTest {   @Autowired  ApplicationContext context;   @Test  void givenImportedBeans_whenGettingEach_shallFindIt() {  assertThatBeanExists("aWSCredentials", AWSCredentialsProvider.class);  }   private void assertThatBeanExists(String beanName, Classlt;?gt; beanClass) {  Assertions.assertTrue(context.containsBean(beanName));  Assertions.assertNotNull(context.getBean(beanClass));  } }