汪建军的博客

休迅飞凫,飘忽若神,凌波微步,罗袜生尘。

Android developer, sometimes thinking, sometimes try it.


Spring Boot(二)配置、单元测试、打包

配置

配置文件为application.properties,这个在我之前的博客有写过,这里补充几点:

1、添加spring.profiles.active=dev字段,在任意类里可以通过如下注解取出

    @Value("${spring.profiles.active}")
    private String active;

这里的active的值即为dev,可以用于多环境配置。

2、application.properties的值都可以在部署的时候动态修改:
java -jar path/app.jar --spring.profiles.active=prod --server.port=8080

单元测试

在工程目录src/test/java/包名/下新建一个test类

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

    private MockMvc mvc;

    @Before
    public void setUp() {
        mvc = MockMvcBuilders.standaloneSetup(new DemoController()).build();
    }

    @Test
    public void testDemoController() throws Exception {
        RequestBuilder request;

        request = MockMvcRequestBuilders.get("");
        String hello = mvc.perform(request)
                .andReturn().getResponse().getContentAsString();
        LogUtil.log("test.getHello:\n" + hello);


        request = MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON);
        mvc.perform(request)
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andExpect(MockMvcResultMatchers.content().string(Matchers.equalTo("hello spring boot!")));


        request = MockMvcRequestBuilders.post("/api/and")
                .param("abc", 1 + "")
                .param("b", 2 + "")
                .param("i", 3 + "");
        String add = mvc.perform(request)
                .andReturn().getResponse().getContentAsString();
        LogUtil.log("test.add:\n" + add);

    }

}

测试的是上一篇的DemoController。将一个方法用@Test注解,在该方法里写单元测试代码,完了右键该类run即可。一般来说api单元测试的逻辑就是:

1、构建请求体,包括指定url、传入参数、 header
2、执行,取出结果的字符串、分析返回是否和预期匹配、分析返回状态/cookie/header之类

打包

我们的上一篇工程是jar,在Terminal里输入:

gradle jar

成功后会在工程目录/build/libs/下生成一个jar文件


参考

springboot(十二):springboot如何测试打包部署

Spring Boot属性配置文件详解

最近的文章

Spring Boot(三)接入sentry

Sentry是一个实时事件日志记录平台,可以帮助我们记录事件,记录exception,可以看做后端的umeng统计。这里是Java版的文档。网上能找到的sentry教程基本上都是基于raven-jav…

后端继续阅读
更早的文章

Spring Boot(一)入门

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简单…

后端继续阅读
comments powered by Disqus