• Juint-单元测试


    在java se的学习中,我们要测试代码一般都是通过运行main方法来进行。通过Juint单元测试可直接运行测试方法,而不用通过main方法。


    普通Maven项目

    方法使用注解@Test,可以直接运行测试,而不通过main方法(maven项目

    依赖:(一般新建的maven项目都会带有这个依赖)

    <dependency>
        <groupId>junitgroupId>
        <artifactId>junitartifactId>
        <version>4.11version>
        <scope>compilescope>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在方法上使用注解@Test。@Test注解只有在方法上有效,只要加了这个注解的方法就可以直接运行。

    若还未导入依赖可以按快捷键Option+Enter,选择导入相应的依赖。会自动添加依赖配置到pom文件中,并且自动下载相应jar包。(Maven项目的pom文件,点这里复习一下)

    若已经导入了依赖,按快捷键Option+Enter后选择导入相应的包,import class。一般导入的包名为:import org.junit.Test;

    方法的左侧会出现一个小三角形按钮。该按钮就是运行按钮。

    测试

    与运行main方法是一样的。绿色就是程序正常运行没有发生错误。

    红色报警,就是程序出了错误。


    SpringBoot项目

    目前流行的有JUnit或TestNG等测试框架。Spring Boot封装了单元测试组件spring-boot-starter-test。

    SpringBoot项目中使用单元(Junit)测试。一般情况下Test文件夹内会有一个测试类,可直接在里边进行单元测试。


    简单测试

    步骤

    一、新建

    新建一个类作为测试类或者选择需要测试的类或方法,然后在对应的类中右击,选择Go To→Test→Create New Test。

    二、注解配置

    • 使用注解@SpringBootTest标记测试类

      • 在类的上面添加@SpringBootTest注解,系统会自动把这段程序加载到Spring Boot容器
    • 使用注解@RunWith(SpringRunner.class)标记测试类(使用IDEA可以不添加)

      • @RunWith(SpringRunner.class)注解是一个测试启动器,可以加载Springboot测试环境。
      • 需要从容器中获取实例(@Autowired自动装配)是需要加上该注解,否则空指针。
    • 使用注解@Test标记测试方法

      • @Test注解表示该方法为单元测试方法。
    • 测试对象可以使用注解@Autowired进行自动装配。



    模拟HTTP请求

    spring-boot-starter-test具备强大的Mock能力,使用@WebMvcTest等注解实现模拟HTTP请求测试。

    @RunWith(SpringRunner.class)
    @WebMvcTest(HelloController.class)
    class HelloControllerTest {
    
        @Autowired
        private MockMvc mockMvc;
    
        @Test
        public void hello() throws Exception {
            mockMvc.perform(MockMvcRequestBuilders.post("/hello")   //执行一个请求
                    .contentType(MediaType.APPLICATION_JSON))       //接收的数据类型
                    .andExpect(status().isOk())  //添加执行完成后的断句,请求的状态响应码//是否为200,如果不是则测试不通过
                    .andDo(print()); //添加一个结果处理程序,表示要对结果进行处理,比如此处//使用print()输出整个响应结果信息
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    示例代码说明如下:

    MockMvcRequestBuilders.post(“/hello”):构造一个post请求。

    contentType (MediaType.APPLICATION_JSON)):设置JSON返回编码,避免出现中文乱码的问题。

    andExpect(status().isOk()):执行完成后的断句,请求的状态响应码是否为200,如果不是则测试不通过。

    andDo(print()):添加一个结果处理程序,表示要对结果进行处理,比如此处调用print()输出整个响应结果信息。

    如果接口有登录验证,则需要通过MockHttpSession注入用户登录信息,或者修改登录拦截器取消对单元测试的登录验证。

    注解说明



    笔记摘自:遇见狂神说《Spring Boot从入门到实战》-章为忠

  • 相关阅读:
    【第五篇】-Maven 构建配置文件
    【记录成长】大学时光已过半, 分享我的大二暑期实习经历
    开发知识点-uniapp微信小程序-开发指南
    java-net-php-python-jspm小区物业管理系统设计计算机毕业设计程序
    使用Bat_To_Exe_Converter生成exe的方法(绝对可行)
    45岁大龄程序员自述:我居然还苟在程序人生里,但是已经难以为继
    Golang 规则引擎原理及实战
    基于ROS的蛇形机器人基本仿生运动与自主爬台阶控制
    mybatis拦截器实现数据权限
    LM小型可编程控制器软件(基于CoDeSys)笔记二十:plc通过驱动器控制步进电机
  • 原文地址:https://blog.csdn.net/weixin_44773109/article/details/127684994