Eclipse搭建springboot项目(五)单元测试

知识点:Springboot2.0单元测试和自定义异常处理

  1、@SpringBootTest单元测试
    1)、引入相关依赖

<!--springboot程序测试依赖,如果是自动创建项目默认添加-->
<dependency>
    <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

    2)、使用    

@RunWith(SpringRunner.class) //底层用junit SpringJUnit4ClassRunner
@SpringBootTest(classes={XdclassApplication.class})//启动整个springboot工程
public class SpringBootTests { }

    3)单元测试注解

      a )@Test

      b)@Before 在Test前执行

      c)@After 在Test后执行

  2、SpringBoot测试进阶之MockMvc类的使用和模拟Http请求

    1)、增加类注解 @AutoConfigureMockMvc
    @SpringBootTest(classes={XdclassApplication.class})

    MockMvc相当于Http客户端
    2)、相关API
    perform:执行一个RequestBuilder请求
    andExpect:添加ResultMatcher->MockMvcResultMatchers验证规则
    andReturn:最后返回相应的MvcResult->Response

  3、SpringBoot2.x个性化启动banner设置和debug日志
    简介:自定义应用启动的趣味性日志图标和查看调试日志

      1)、启动获取更多信息 java -jar xxx.jar --debug
      2)、修改启动的banner信息

        a)在类路径下增加一个banner.txt,里面是启动要输出的信息
        b)在applicatoin.properties增加banner文件的路径地址spring.banner.location=banner.txt
        c)官网地址 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-banners

  4、SpringBoot2.x配置全局异常
    讲解:服务端异常讲解和SpringBoot配置全局异常实战

      1)、默认异常测试 int i = 1/0,不友好
      2)、异常注解介绍
        @ControllerAdvice 如果是返回json数据 则用 RestControllerAdvice,就可以不加 @ResponseBody
        //捕获全局异常,处理所有不可知的异常
        @ExceptionHandler(value=Exception.class)

  5、SpringBoot2.x配置全局异常返回自定义页面
    简介:使用SpringBoot自定义异常和错误页面跳转实战

    1)、返回自定义异常界面,需要引入thymeleaf依赖
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    2)、resource目录下新建templates,并新建error.html
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("error.html");
    modelAndView.addObject("msg", e.getMessage());
    return modelAndView;

    https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-error-handling

1.新建测试类,引入依赖和注解,采用断言测试:

package net.aaron.demo.aaron_springboot;

import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import junit.framework.TestCase;
import net.aaron.demo.AaronSpringbootApplication;

@RunWith(SpringRunner.class) // 底层用junit SpringJUnit4ClassRunner
@SpringBootTest(classes = { AaronSpringbootApplication.class }) // 指定工程main函数入口,启动整个springboot工程
class AaronSpringbootApplicationTests {

    @Test
    public void testOne() {
        System.out.println("Hello World");
        //断言
        //TestCase.assertEquals(expected, actual);
        TestCase.assertEquals(1, 1);
    }

}

2.MocMVC测试:

  1)创建被测试Controller

package net.aaron.demo.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import net.aaron.demo.domain.User;

@RestController
public class SampleController {

    @RequestMapping("/test/home")
    public String home() {
        return "aaron";
    }

    @RequestMapping("/test")
    public Map<String,String> testMap(){
        Map<String,String> map = new HashMap<>();
        map.put("name", "aaron");
        return map;
    }

    @GetMapping("/testjson")
    public Object testjson(){
        return new User(111, "abc123", "10001000", new Date());
    }

}

    2)创建MockMvc测试类,返回200即OK

package net.aaron.demo.aaron_springboot;

import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MockMvcBuilder;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import net.aaron.demo.AaronSpringbootApplication;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = { AaronSpringbootApplication.class })
@AutoConfigureMockMvc
public class MockMvcTestDemo {

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void apiTest() throws Exception {
        //perform 模拟一个request请求
        //andExpect 期望值
        //MockMvcResultMatchers 结果匹配系
        //andReturn 返回request请求结果
        MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/test/home/")).andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
        //获取状态码
        int status = mvcResult.getResponse().getStatus();
        System.out.println(status);
    }

}

原文地址:https://www.cnblogs.com/aaronRhythm/p/10961292.html

时间: 2024-11-05 19:02:39

Eclipse搭建springboot项目(五)单元测试的相关文章

Eclipse搭建springboot项目(三)文件上传

知识点:SpringBoot2.x文件上传:HTML页面文件上传和后端处理 1.springboot文件上传 MultipartFile file,源自SpringMVC 1)静态页面直接访问:localhost:8080/index.html 注意点:如果想要直接访问html页面,则需要把html放在springboot默认加载的文件夹下面 2)MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效) 访问路径 http

Eclipse搭建springboot项目(四)热部署

知识点:SpringBoot2.x使用Dev-tool工具热部署,快速加载启动应用 官方地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-devtools 核心依赖包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin

Eclipse搭建springboot项目(六)全局异常

知识点: 1.SpringBoot2.x服务端异常和SpringBoot配置全局异常 1).默认异常测试 int i = 1/0,不友好 2).异常注解介绍 @ControllerAdvice 如果是返回json数据 则用 RestControllerAdvice,就可以不加 @ResponseBody //捕获全局异常,处理所有不可知的异常 @ExceptionHandler(value=Exception.class) 2.SpringBoot2.x配置全局异常返回自定义异常和错误页面跳转

eclipse 搭建springboot项目pom.xml报错

1. 报错信息 2. 解决方法 在pom.xml文件中加入maven版本修改 <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> 3. 右键项目-->Update Project... 4. 问题解决 原文地址:https://www.cnblogs.com/zhainan-blog/p/11301026.html

使用IDEA快速搭建Springboot项目

Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置’,实现零配置. 下面就介绍一下如何使用idea快速搭建Springboot项目. 一.点击最上角File-New-Project.  二.选择创建Spring Initializr项目(推荐SDK使用1.8以上版本).  三.Type选择Maven Project(项目的构建工具),Group 和 Artifact 可以自己命名(建议命名有意义).  

转载:eclipse 搭建SSH项目(第二篇,有具体的项目例子)

原文地址:http://blog.csdn.net/yeohcooller/article/details/9316923 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hibernate,整合Spring.最后总结如何熟练创建SSH项目. 仅是创建SSH项目,对于其他的扩展例如Struts的国际化,Hibernate的缓存优化,Spring的AOP等,本博文涉及不到.想学习更多的东西请搜索其他博文. 本项目的环境:Windows 8-64位

使用intellij idea 搭建springboot项目实践

1.使用intellij idea 搭建springboot项目 原文地址:https://www.cnblogs.com/zzsuje/p/12298516.html

使用Eclipse 创建 搭建SpringBoot项目

之前用IDEA 创建Springboot 项目感觉十分简单,但是常用的毕竟是Eclipse  所以开一个帖子记录一下Eclipse 如何创建 Springboot 项目 第一步:Help -> Eclipse Marketplace- 在search 中输入 'STS' install 即可! 第二部:new -> project -> other -> Spring start project; 点击finsh   SpringBoot 项目创建完成  ,下面写一个测试demo

eclipse搭建springBoot框架(非maven)

无论是eclipse还是idea,创建springBoot项目都很简单,而且 网上教程一大把.奈何我我工作的是内网环境,而且没有本地maven仓库,所以只能手工拿取相关jar包,导入到项目中去.下面分享一下过程,虽然没什么技术含量. 一.架子搭建 1.嗯,准备jar包.这些是我的jar包,MySQL数据库.(这不是springboot的最精简的jar包,必要的好像是30个.) 2.eclipse: 创建一个项目,起个名字直接点完成. 3.导入jar包. 删除原本tomcat的jar包 导入之前准