php个人网站简洁,建筑招投标网官网,杭州互联网企业,在线app单元测试–测试RestFul 接口
– 测试用例类使用SpringBootTest(webEnvironment WebEnvironment.RANDOM_PORT)修饰。 – 测试用例类会接收容器依赖注入TestRestTemplate这个实例变量。 – 测试方法可通过TestRestTemplate来调用RESTful接口的方法。
测试用例应该定义在和被测…单元测试–测试RestFul 接口
– 测试用例类使用SpringBootTest(webEnvironment WebEnvironment.RANDOM_PORT)修饰。 – 测试用例类会接收容器依赖注入TestRestTemplate这个实例变量。 – 测试方法可通过TestRestTemplate来调用RESTful接口的方法。
测试用例应该定义在和被测试类位于同一个包位置。 // 测试用例的位置要和被测试的位于同一个包路径位置。
//参数webEnvironment web环境RANDOM_PORT表示随机端口
SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT)
public class BookControllerTest {//测试用例类会接收容器依赖注入TestRestTemplate这个实例变量Autowiredprivate TestRestTemplate testRestTemplate;//注意点测试的时候对应的方法的参数列表要加上注解RequestBody不然这个book实体传到方法那边方法无法接收会变成null。//单次测试Testpublic void testAddBookRestful(){//生成测试数据Book book new Book(mysql, new BigDecimal(100), ljh);//参数1访问的路径参数2测试的数据参数3获取服务器响应的数据类型就是方法的返回值类型Book b testRestTemplate.postForObject(/books, book, Book.class);//断言 参数1期望值 参数2实际值Assertions.assertEquals(mysql,b.getName());Assertions.assertEquals(BigDecimal.valueOf(100),b.getPrice());Assertions.assertEquals(ljh,b.getAuthor());}//参数化测试可以让方法进行多次测试ParameterizedTest //允许测试方法接收参数进行测试和注解 CsvSource 一起使用CsvSource注解用来写参数数据//参数是一个数组数组里面的每一个元素就是方法的参数CsvSource({书籍A,100,ljh,书籍B,110,ljh,书籍C,120,ljh})public void testAddBookRestful02(String name,BigDecimal price,String author){//生成测试数据Book book new Book(name, price, author);//测试Book b testRestTemplate.postForObject(/books, book, Book.class);//断言Assertions.assertEquals(name,b.getName());Assertions.assertEquals(price,b.getPrice());Assertions.assertEquals(author,b.getAuthor());}
}解释 注意点1 涉及注解RequestBody 测试的时候被测试的方法的参数列表要加上注解RequestBody不然这个book实体传到被测试方法那边方法的参数无法接收会变成null。
单次测试添加图书 多次测试添加图书
涉及到注解 1、ParameterizedTest 表示这个测试是参数化测试junit5 才有的注解 //允许测试方法使用参数进行测试 和注解 CsvSource 一起使用CsvSource注解用来写参数数据
2、CsvSource({“书籍A,100,ljh”,“书籍B,110,ljh”,“书籍C,120,ljh”}) //参数是一个数组数组里面的每一个元素就是方法的参数每个元素里面的多个参数用逗号隔开
测试查询方法 测试删除
涉及的注解 ParameterizedTest //表明这个测试方法属于参数测试 ValueSource(ints {76, 77, 78}) //具体参数