在测试类中初始化spring boot2的Bean的两种方法

在springboot里面,我可以用@TestConfiguration注解去为一些测试类初始化java bean, 以实现注入的目的.最常见的有两种法法
1. @TestConfiguration + @Import
被@TestConfiguration 注解的类,并不包含在springboot的启动扫描之中,因此需要我们自己手工import进去,比如.
程序代码 程序代码

@TestConfiguration
public class TestConfig {

    @Bean
    public RestTemplateBuilder restTemplateBuilder() {
        return new RestTemplateBuilder()
                .basicAuthentication("youname", "password")
                .setConnectTimeout(Duration.ofSeconds(5));
    }
}


另一个类:
程序代码 程序代码

@RunWith(SpringRunner.class)
@SpringBootTest
@Import(TestConfig.class)
public class RestTemplateTest {
    
    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void post_user_ok() {
        //...
    }

}


2. 第二种方法, 采用静态内部类,这就不用多说了,看代码就明白的。
程序代码 程序代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class RestTemplateTest {

    @TestConfiguration
    static class TestConfig {

        @Bean
        public RestTemplateBuilder restTemplateBuilder() {

            return new RestTemplateBuilder()
                    .basicAuthentication("youname", "password")
                    .setConnectTimeout(Duration.ofSeconds(5));
        }
        
    }

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void post_user_ok() {
        //...
    }

}


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: springboot
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.