java测试中各类断言方式汇总

您所在的位置:网站首页 java测试框架有哪些内容 java测试中各类断言方式汇总

java测试中各类断言方式汇总

2024-06-01 20:07| 来源: 网络整理| 查看: 265

文章目录 java 自带断言testng 断言junit5 断言hamcrest 断言RESTassured 断言 在这里插入图片描述

java 自带断言

assert 作为 java 中的一个关键字,已经可以起到断言的作用了,如下例子

assert true; assert false; testng 断言

testng 自带有断言类 Assert 类,其中有各种静态的断言方法可供使用,下面列出一些常用的

// 断言真假 Assert.assertTrue(true); // 断言匹配,前一个参数是期望值,后一个参数是实际值 Assert.assertEquals(1, 1);

但是 testng 中没有函数式接口的传参,所以没法使用 lambda 表达式进行多个值的校验,所以测试中如果在一个测试用例中做多个值校验, 我们可以考虑通过设置一个 flag 标志变量来做,或者使用可以校验多个值的 junit 断言机制

junit5 断言

目前本人使用的是 junit5 断言,非常灵活,使用了 Assertions 类,这个类在org.junit.jupiter.api包下,这里也列出一些常用的断言

// 判断真假 Assertions.assertTrue(true); // 断言匹配 Assertions.assertEquals(1, 1); // 使用 lambda 表达式断言多个,其中只要有一个错了,该断言就位 false Assertions.assertAll( () -> {Assertions.assertTrue(true);}, () -> {Assertions.assertEquals(1, 1);}, () -> {Assertions.assertEquals("a", "a");} );

值得注意的是 junit 4.4 版本以后引入了 hamcrest 的 assertThat 断言,可以很方便人性化的断言了

hamcrest 断言

Hamcrest 是一个书写匹配器对象时允许直接定义匹配规则的框架.有大量的匹配器是侵入式的,例如 UI 验证或者数据过滤,但是匹配对象在书写灵活的测试是最常用

另外值得一提的是 hamcrest 依赖已经被 springboot web 开发框架和 restassured 接口测试框架所集成

hamcrest 参数中前面是实际值,后面是期望值,后面是 matcher 比较器

// 判断相同 MatcherAssert.assertThat("b", Matchers.is("a")); // equalto 可以比较对象 MatcherAssert.assertThat("a", Matchers.equalTo("a"));

还有许多各种比较器,比如 hasItem,,hasItems 测试一个集合包含一个元素等等

when(). get("/store"). then(). body("store.book.findAll { it.price < 10 }.title", hasItems("Sayings of the Century", "Moby Dick")); RESTassured 断言

RESTassured 是一个接口测试框架,可以通过 mvn 依赖引入

在写 RESTassured 接口测试时候通常使用两种方式断言

方式一:直接使用 RESTassured 的 body 方法结合 hamcrest 中的比较器即可,这样不需要将断言写进 test 中也可以起到断言作用

when(). get("/store"). then(). body("store.book.findAll { it.price < 10 }.title", hasItems("Sayings of the Century", "Moby Dick"));

方式二:使用 extract().response() 方法提取出 Response 类,之后在测试类中通过对 Response 进行操作结合一些断言方法即可

// 返回的是 Response when(). get("/store"). then().log(). body(). extract().response(); // 在测试类中断言,提取 json 中的 user 进行对比断言 Assert.assertEquals("xxx", response.path("user"));

最后不得不提的是 REST assured 中提供非常灵活丰富的断言机制,这里不做细讲,还需要大家自行查看官网探索!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3