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

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

在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() {
        //...
    }

}

上一篇: 分布式定时任务备忘录
下一篇: 接到了一个Secure Key Box侵权的通知
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号