Spring-boot官方案例分析之log4j

运行单元测试分析:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SampleActuatorApplication.class)
@WebAppConfiguration
@IntegrationTest("server.port=0")
@DirtiesContext

进行单元测试的注解配置:

@SpringApplicationConfiguration(classes=SampleAactuatorApplication.class)表示要启动的程序入口类

@DirtiesContext当上下文遭到破坏时,会重新注册上下文

接下来声明一个测试类:

于是Web项目,Junit需要模拟ServletContext,因此我们需要给我们的测试类加上@WebAppConfiguration

@IntegrationTest("server.port=0")使用0表示端口号随机,也可以具体指定如8888这样的固定端口

public class SampleActuatorApplicationTests {

@Value("${local.server.port}")
   private int port;

@Test
   public void testHome() throws Exception
{
      @SuppressWarnings("rawtypes")
      ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(
            "http://localhost:"
+ port, Map.class);
      assertEquals(HttpStatus.OK, entity.getStatusCode());

System.out.println("entity.getStatusCode():"+entity.getStatusCode());
        @SuppressWarnings("unchecked")
      Map<String, Object> body = entity.getBody();
      assertEquals("Hello
Phil", body.get("message"));
        System.out.println(body.get("message"));
//
   }

}

注入配置文件中的值到属性port中;@Value

声明测试类:

@SuppressWarnings("rawtypes")

是压制警告

k也可以使用@Rule

public
OutputCapture capture=new OutputCapture();

但是在新版的Junit中,assertEquals 方法已经被废弃,它建议我们使用assertArrayEquals,旨在让我们测试一个方法的时候多传几种参数进行多种可能性测试。

通过@Autowired可以织入容器中自己想要测试的对象。

控制器里面定义了请求匹配的@RequestMapping

同时注入了HelloWorldService组件,HelloWorldService注入ServiceProperties类,程序入口为SampleActuatorApplication类;

在测试类里进行单元测试,模拟请求

@Test
public void TestName(){     @SuppressWarnings("rawtypes")
    ResponseEntity<Map> entity=new TestRestTemplate().getForEntity(
            "http://localhost:" + port, Map.class);     System.out.println(port);
    assertEquals(HttpStatus.OK,entity.getStatusCode());
  //  System.out.println("name:" +name);
    @SuppressWarnings("unchecked")
    Map<String,Object> body=entity.getBody();
    assertEquals("Hello Phil",body.get("message"));     System.out.println(body.get("message")); }

Spring-boot官方案例分析之log4j的更多相关文章

  1. Spring-boot官方案例分析之data-jpa

    Spring-boot官方案例分析之data-jpa package sample.data.jpa; import org.junit.Before; import org.junit.Test; ...

  2. 精尽Spring Boot源码分析 - Jar 包的启动实现

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  3. 精尽Spring Boot源码分析 - 日志系统

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  4. spring boot下使用logback或log4j生成符合Logstash标准的JSON格式

    spring boot下使用logback或log4j生成符合Logstash标准的JSON格式 一.依赖 由于配置中使用了json格式的日志输出,所以需要引入如下依赖 "net.logst ...

  5. Spring Boot 入门详细分析

    推荐阅读: 我们为什么要学习 Spring Boot 我们搭建 Spring Boot 项目,可以使用 Spring 为我们提供的初始化网站,那个可能不太方便,今天呢,我们就来说说如何使用 IDEA ...

  6. Spring Boot源码分析-配置文件加载原理

    在Spring Boot源码分析-启动过程中我们进行了启动源码的分析,大致了解了整个Spring Boot的启动过程,具体细节这里不再赘述,感兴趣的同学可以自行阅读.今天让我们继续阅读源码,了解配置文 ...

  7. Spring Boot源码分析-启动过程

    Spring Boot作为目前最流行的Java开发框架,秉承"约定优于配置"原则,大大简化了Spring MVC繁琐的XML文件配置,基本实现零配置启动项目. 本文基于Spring ...

  8. 精尽Spring Boot源码分析 - 序言

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  9. 精尽Spring Boot源码分析 - 文章导读

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

随机推荐

  1. 使用setInterval函数改变网页背景的颜色

    var icolor=0; var iNum=256; var iID=setInterval(setbgColor, 500); function setbgColor() { body.backg ...

  2. 深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇)

    本篇是ECMA-262-3 in detail系列的一个概述(本人后续会翻译整理这些文章到本系列(第11-19章).每个章节都有一个更详细的内容链接,你可以继续读一下每个章节对应的详细内容链接进行更深 ...

  3. mysql 乱码问题的捣鼓

    mysql在ubuntu的终端下出现中文乱码的问题: 先学着在不改数据库的情况下对my.cnf配置文件进行修改, 主要的是设置 default-character-set=utf8 但是设置完后数据库 ...

  4. java使用commons-fileupload进行文件上传

    java中使用文件上传时需要使用特定的类库,这里使用commons-files类库进行文件上传,在http://commons.apache.org/proper/commons-fileupload ...

  5. Linux 套接字编程 - TCP连接基础

    第五章的内容,实现一个echo服务器和对应的客户端,主要收获: 0. TCP socket编程主要基本步骤 1. SIGCHLD信号含义(子进程退出时向父进程发送,提醒父进程对其状态信息进行一个获取) ...

  6. css随堂笔记(三)

    Css随堂笔记(三) 1 关于背景图片   A 设置背景图片:background-image:url(“图片的路径”):   B 背景图片位置: background-position:1 方位名词 ...

  7. 设置cssrem,设置emmet

    1.文件->首选项->设置 2.搜索cssrem-> 点击设置:"cssrem.rootFontSize": 16, 4.emmet

  8. supervisor运行virtualenv环境下的nagios-api

    supervisord-example.conf [unix_http_server] file=/tmp/supervisor.sock ; path to your socket file [su ...

  9. Browser进程和浏览器内核(Renderer进程)的通信过程

    看到这里,首先,应该对浏览器内的进程和线程都有一定理解了,那么接下来,再谈谈浏览器的Browser进程(控制进程)是如何和内核通信的, 这点也理解后,就可以将这部分的知识串联起来,从头到尾有一个完整的 ...

  10. Selenium2学习(三)-- 八种元素元素定位(Firebug和firepath)

    前言 自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇主要讲如何用firefox辅助工具进行元素定位.元素定位在这四个环节中是至关 ...