您的位置:首页 > 其它

assertj断言机制记录

2016-11-18 14:51 337 查看


assertj断言机制记录

据说Junit自带org.junit.Assert断言包功能不够完善,assertj功能更强大,在官网
http://joel-costigliola.github.io/assertj/
和一些博客上进行学习、记录如下。

在IntelliJ IDEA中使用maven来下载assertj的jar包

<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<!-- use x.x.x for Java 7 projects -->
<version>x.x.x</version>
<!-- <version>x.x.x</version> -->
<scope>test</scope>
</dependency>

//导入asserthat所有方法  

import static org.assertj.core.api.Assertions.*;

assertThat(a).as("错误描述").method(b)

a 是实际结果,b是预期结果。实际结果符合预期结果的方法method则测试通过,否则报错输出“错误描述”。

断言所用list

list.add("test1");
list.add("test2");
list.add("test3");
list.add("test3");

listtest.add("test1");
listtest.add("test2");
listtest.add("test3");

字符串处理

assertThat("test1").isEqualTo("test1");
assertThat("test1").isSameAs("test1");
assertThat("test1").isNotEqualTo("test2");

assertThat("frodo").startsWith("fro")
.endsWith("do")
.isEqualToIgnoringCase("Frodo");  //正确,忽略大小写

// 断言包含字符串 不包含字符串
assertThat("Frodo").contains("rod").doesNotContain("fro");  //正确,会识别大小写
// 断言字符串只出现过一次
assertThat("Frododo").containsOnlyOnce("do"); // 错误栗子

//判断正则匹配
assertThat("Frodo").matches("..o.o")  // 一个.代表一个字母
.doesNotMatch(".*r");//.*表示一串字母,不是以r结尾则测试通过
//.doesNotMatch(".*r.*");//错误栗子,含有字母r则不通过

list包含断言

assertThat(list).hasSize(4)
.contains("test1", "test2")
.containsOnly("test1", "test2", "test3")
.containsExactly("test1", "test2", "test3", "test3")
.containsAll(listtest)    //包含listtest中的全部元素
.doesNotContain("test5");

assertThat(list).isSameAs(listtest);//
错误栗子
,两个列表所含元素有不一样的

assertThat(list)
.containsOnlyOnce("test3");//
错误栗子
,因为test3出现2次[/code]
数字断言

Integer num1 = null;
Integer num2 =30;
// 断言空
assertThat(num1).isNull();
// 断言非空
assertThat(num2).isNotNull();
// 断言相等
assertThat(num2).isEqualTo(30);
// 断言大于 大于等于
assertThat(num2).isGreaterThan(18)
.isGreaterThanOrEqualTo(18);
// 断言小于 小于等于
assertThat(num2).isLessThan(38)
.isLessThanOrEqualTo(38);
// 断言0
assertThat(0).isZero();
// 断言正数 非负数
assertThat(1).isPositive()
.isNotNegative();
// 断言负数 非正数
assertThat(-1).isNegative()
.isNotPositive();
// 断言区间
assertThat(0.8).isStrictlyBetween(0.0,1.0);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: