assertj断言机制记录

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次

数字断言

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);
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AssertJ 是 JAVA 的流畅断言库。示例代码:// unique entry point to get access to all assertThat methods and utility methods (e.g. entry) import static org.assertj.core.api.Assertions.*;  // common assertions assertThat(frodo.getName()).isEqualTo("Frodo"); assertThat(frodo).isNotEqualTo(sauron)                  .isIn(fellowshipOfTheRing);  // String specific assertions assertThat(frodo.getName()).startsWith("Fro")                            .endsWith("do")                            .isEqualToIgnoringCase("frodo");  // collection specific assertions assertThat(fellowshipOfTheRing).hasSize(9)                                .contains(frodo, sam)                                .doesNotContain(sauron);  // using extracting magical feature to check fellowshipOfTheRing characters name :) assertThat(fellowshipOfTheRing).extracting("name").contains("Boromir", "Gandalf", "Frodo", "Legolas")                                                   .doesNotContain("Sauron", "Elrond");  // map specific assertions, ringBearers initialized with the elves rings and the one ring bearers. assertThat(ringBearers).hasSize(4)                        .contains(entry(oneRing, frodo), entry(nenya, galadriel))                        .doesNotContainEntry(oneRing, aragorn);  // and many more assertions : dates, file, numbers, exceptions ... 标签:AssertJ

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值