美文网首页程序员Spring Boot首页推荐
SpringBoot基础教程(十四)——与测试的结合

SpringBoot基础教程(十四)——与测试的结合

作者: 数齐 | 来源:发表于2018-03-24 13:03 被阅读83次

作为一套微服务的解决方案,怎么会缺乏测试呢?spring boot 可以支持不同的环境的测试
话不多说,看下pom

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

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

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

spring-boot-starter-test里面包含的spring boot 测试框架中需要的内容,还包括我们的老朋友junit等。看下我们的业务代码

package com.shuqi.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Value("${env}")
    private String env;

    @RequestMapping("/hello")
    public String hello() {
        return "hello " + env;
    }
}

里面的操作是通过运行时环境中得到env这个属性的值,然后通过controller中的hello暴露出去。功能比较简单。看下我们测试包中的resources目录下的内容,包含两个内容application-dev.yml与application-test.yml。他们之间的区别就是里面的env的属性值不同。在application-dev.yml中的文件内容是env: dev。在application-test.yml中的文件内容是env: test。东西都准备好了,看下我们的测试方法

package com.shuqi;

import com.shuqi.controller.HelloController;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

@ActiveProfiles("test")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(ApplicationMain.class)
public class MyTest {

    @Resource
    private HelloController helloController;

    @Test
    public void test() {
        System.out.println(helloController.hello());
    }
}

其中有一个ActiveProfiles的注解,当里面写“test”就会找到application-test.yml的文件作为配置文件,那么属性也自然取的是其中的属性。如果是dev也是相同的道理。运行一下看到结果hello test。然后将ActiveProfiles切换成dev,看到结果hello dev。通过这种测试切换环境测试是不是超级方便。即测了功能也测了环境。

下节将的内容是:SpringBoot基础教程(十五)——与rabbitmq的结合

本节项目源码

相关文章

网友评论

    本文标题:SpringBoot基础教程(十四)——与测试的结合

    本文链接:https://www.haomeiwen.com/subject/xfeqcftx.html