#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)); } }