java流式断言 Assertj

1 篇文章 0 订阅

maven依赖:

 <!-- https://mvnrepository.com/artifact/org.assertj/assertj-core -->
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>3.10.0</version>
            <scope>test</scope>
        </dependency>

具体代码如下:

import org.testng.annotations.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.withinPercentage;
import static org.assertj.core.util.DateUtil.parse;
import org.joda.time.DateTime;
public class Test{
        @Test
        public void testAssertJ() {
            
            //对象null判断
            Object object = null;
			assertThat(object).isNotNull();
			assertThat(object).isNull();
			
			//判断数据大小
			Double ss =-0.3 ;
            assertThat(ss).isBetween(-0.3,99.0);
            assertThat(ss).isStrictlyBetween(0.4,0.9);//[0.4,0.9]
            assertThat(ss <= 0.53).isTrue();
            assertThat(ss).isCloseTo((0.4189), withinPercentage(1.0));//误差在百分之1
            assertThat(ss).isEqualTo(-0.3);
            assertThat(ss).isGreaterThan(-0.56).isGreaterThanOrEqualTo(-0.56);
            assertThat(ss).isLessThan(0.6).isLessThanOrEqualTo(0.6);
            assertThat(ss).isZero();
            assertThat(ss).isPositive().isNotNegative();// 断言正数 非负数
            assertThat(ss).isNegative().isNotPositive();// 断言负数 非正数
            
            //判断list
            List list = new ArrayList();
			assertThat(list).isIn(new ArrayList(), new HashMap());
			assertThat(list).hasSize(2);
			
			// 字符串断言null或为空字符串
			String str = null;
			assertThat("abc").as("校验abc").isEqualTo("abcd");//添加错误提示
            assertThat(str).isNullOrEmpty();// 断言空字符串
            assertThat("").isEmpty();// 断言字符串相等 断言忽略大小写判断字符串相等     
            assertThat("Aaaa").isEqualTo("Aaaa").isEqualToIgnoringCase("frodo");
            assertThat("Abcd").startsWith("Ab").endsWith("cd").hasSize(4);// 断言开始字符串 结束字符穿 字符串长度
            assertThat("Abcde").contains("bcd").doesNotContain("abc");// 断言包含字符串 不包含字符串
            assertThat("Abcde").containsOnlyOnce("cd");// 断言字符串只出现过一次
            assertThat("Abcdef").matches("..c.e").doesNotMatch(".*d"); // 判断正则匹配
            
            //判断日期
            assertThat(parse("2014-02-01")).isEqualTo("2014-02-01").isNotEqualTo("2014-01-01").isAfter("2014-01-01").isBefore(parse("2014-03-01"));// 断言与指定日期相同 不相同 在指定日期之后 在指定日期之前
            assertThat(DateTime.now().toDate()).isBeforeYear(2020).isAfterYear(2013); // 断言 2014 在指定年份之前 在指定年份之后
            assertThat(parse("2014-02-01")).isBetween("2014-01-01", "2014-03-01").isNotBetween(parse("2014-02-02"), parse("2014-02-28"));// 断言时间再指定范围内 不在指定范围内
            assertThat(newArrayList()).isEmpty();// 断言 list是空的
            assertThat(newArrayList(1, 2, 3)).startsWith(1).endsWith(3);// 断言 list的开始 结束元素
            assertThat(newArrayList(1, 2, 3)).contains(1, atIndex(0)).contains(2, atIndex(1)).contains(3).isSorted();// 断言 list包含元素 并且是排序的
            assertThat(newArrayList(3, 1, 2)).isSubsetOf(newArrayList(1, 2, 3, 4));// 断言 被包含与给定list
            assertThat(newArrayList("a", "b", "c")).containsOnlyOnce("a");// 断言 存在唯一元素

            //判断map
 			Map<String, Object> map = Maps.newHashMap();
            map.put("A", 1);
            map.put("B", 2);
            map.put("C", 3);
            assertThat(map).isNotEmpty().hasSize(3);//map 不为空 size
            assertThat(map).contains(entry("A", 1), entry("B", 2));// map 包含元素
            assertThat(map).containsKeys("A", "B", "C");//map 包含key
            assertThat(map).containsValue(3);// map 包含value
             
        }
}
  • 0
    点赞
  • 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、付费专栏及课程。

余额充值