springboot学习笔记(测试临时属性配置,测试web环境)

目录

1.加载测试专用属性

2.加载测试专用配置

3测试类中web环境

3.1测试类中启动web环境

3.2.发送虚拟请求

 3.3.匹配响应执行状态

3.4.匹配响应体 

3.5匹配响应体(json)

3.6.匹配响应头

4..数据层测试事务回滚

5.测试用例测试随机值 


前提是你配置好了springboot环境

1.加载测试专用属性

随便写个测试类

在类名上加上注解@SpringBootTest,然后在里面创建个测试方法,在方法上加注解@Test

springboot学习笔记(测试临时属性配置,测试web环境)_第1张图片

然后如果想用临时属性的话,可以通过properties参数设置测试环境专用的属性

例如:

@SpringBootTest(properties={"test.prop=testValue1"})

public class PropertiesTest{

    @Value("${test.prop}")

    private String msg;

    @Test

    void test(){

        System.out.printLn(msg);

    }

}

优点:比多环境开发中的测试环境影响范围小,仅对当前测试类有效

@SpringBootTest(args={"--test.prop=testValue2"})

public class PropertiesTest{

    @Value("${test.prop}")

    private String msg;

    @Test

    void test(){

        System.out.printLn(msg);

    }

}

这种命令行似的临时属性配置优先级较高

2.加载测试专用配置

先创建一个简单的配置类,在配置类中配置一个简单的bean

springboot学习笔记(测试临时属性配置,测试web环境)_第2张图片

然后创建一个测试类,做以下配置@Import()可以导入相关配置类

一个配置用@Import(),多个配置类用@Import({*,*,*,})

 springboot学习笔记(测试临时属性配置,测试web环境)_第3张图片

3测试类中web环境

3.1测试类中启动web环境

还是像之前一样创建个测试类,只不过修改一下@SpringBootTest参数即可

springboot学习笔记(测试临时属性配置,测试web环境)_第4张图片

RANDOM_PORT随机端口,考虑实际情况,很有可能你设置的端口会与你服务器上的端口冲突,所以采用随机端口测试比较好。

然后,先随便创建个controller

springboot学习笔记(测试临时属性配置,测试web环境)_第5张图片

 注意:在测试类中启动的是虚拟的环境,并不是真正的调用,需要使用相关虚拟调用配置

3.2.发送虚拟请求

开启虚拟MVC调用@AutoConfigureMockMvc

springboot学习笔记(测试临时属性配置,测试web环境)_第6张图片

具体方法调用如下

springboot学习笔记(测试临时属性配置,测试web环境)_第7张图片

 也可以将参数写到外部装配

@Autowired

private MockMvc mvc;

这个是虚拟环境调用对象,需要用这个对象的perform方法,而这个perform方法所需参数是上图中Builder对象,图中是直接用了实现类的方式直接实现了接口,虚拟环境中的所需路径只需要端口后面的/books,前面的默认已有。

然后运行即可

springboot学习笔记(测试临时属性配置,测试web环境)_第8张图片

 3.3.匹配响应执行状态

springboot学习笔记(测试临时属性配置,测试web环境)_第9张图片

如果没有该路径,则报错

3.4.匹配响应体 

springboot学习笔记(测试临时属性配置,测试web环境)_第10张图片

3.5匹配响应体(json)

快速写一个实体类和改造一下controller的方法

现加这个依赖(实体类需要)

springboot学习笔记(测试临时属性配置,测试web环境)_第11张图片

实体类

 springboot学习笔记(测试临时属性配置,测试web环境)_第12张图片

 springboot学习笔记(测试临时属性配置,测试web环境)_第13张图片

 然后这个就可以返回json数据了,接下来进行测试

springboot学习笔记(测试临时属性配置,测试web环境)_第14张图片

 与上一个很类似,就content的方法不一致json的参数就是你想得到的json数据,直接从外界复制到这里即可,idea会为你处理好格式。

3.6.匹配响应头

springboot学习笔记(测试临时属性配置,测试web环境)_第15张图片

其中header.string(name,value)参数 是名称和值

多个测试规则合并

springboot学习笔记(测试临时属性配置,测试web环境)_第16张图片

4..数据层测试事务回滚

springboot学习笔记(测试临时属性配置,测试web环境)_第17张图片

在测试类上加@Transactional,测试类中的测试方法就可以不会真的执行,数据库并不会真的操作该类的方法。因为这里默认@Rollback(true),所以会回滚事务

若是再加上@Rollback(false)这里还是会执行该操作,数据库会有所变化。

5.测试用例测试随机值 

在yml中设置随机数,一般采用多环境开发例如创建个application-test.yml

springboot学习笔记(测试临时属性配置,测试web环境)_第18张图片

 

@Component
@Data
@ConnfigurationProperties(prefix="testcase.book")
public class BookCase{
    private int id;
    private String name;
    private String uuid;
    private long publishTime;
}

 

你可能感兴趣的:(springboot学习笔记,spring,boot,java,springboot)