zoukankan      html  css  js  c++  java
  • 4. SpringBoot —— 单元测试

    首先在pom文件中引入spring-boot-starter-test

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>

    测试方式1:

    这也是官方推荐的方式,缺点是在真正的多项目开发时,有的项目没有启动类,为了这种方式的测试,还需在 src/test 下构建一个测试启动类

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes=App.class)
    public class RedisUtilTest {
        
        @Autowired
        private RedisUtil redisUtil ;
        
        
        
        @Test
        public void testAddOrUpdate() {
            redisUtil.addOrUpdate("test","ddd");
        }    
    
    }

    测试方式2 (人个总结出的方法):

    使用 SpringApplicationBuilder 类构建 ApplicationContext实例,但是这种方式需要明确知道相应的@Configuration配置类

    1. 定义项目的Configuration类,相当于指定了配置文件

    @Configuration
    @ConditionalOnMissingBean(RedisUtil.class)
    public class EcshopCommonUtilsConfig {
        
        @Bean
        public RedisUtil redisUtil() {
            return new RedisUtil() ;
        }
    
    }

    2.通过SpringApplicationBuilder构建context容器

    public class RedisUtilTest {
        
        @Autowired
        private RedisUtil redisUtil ;
        
        @Before
        public void init() {
             
             Class<?>[] sources = {XxxxConfig.class,RedisAutoConfiguration.class} ;
             String[] properties = {"spring.redis.host=127.0.0.1","spring.redis.port=6379","spring.redis.database=0","spring.redis.password=xxx"} ;
             
             SpringApplicationBuilder builder = new SpringApplicationBuilder().properties(properties)
                                                                         .web(WebApplicationType.NONE) ; 
             builder.sources(sources) ;
             ConfigurableApplicationContext context = builder.run() ;
             this.redisUtil = context.getBean(RedisUtil.class) ;
        }
        
        
        @Test
        public void testAddOrUpdate() {
            redisUtil.addOrUpdate("test","ddd");
        }
        
    }
  • 相关阅读:
    [BZOJ3160]万径人踪灭
    [BZOJ5212][ZJOI2018]历史
    [BZOJ3563&3569]DZY Loves Chinese
    [HDU4336]Card Collector
    [HDU4652]Dice
    [POJ3683]Priest John's Busiest Day
    ISODateTimeFormat 转换2019-08-15T00:36:49.366456463Z 日期格式
    GoTTY-K8S-Docker 终端
    【php】PHP对redis操作详解
    【tool】VLC播放rtmp协议
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/10519409.html
Copyright © 2011-2022 走看看