Unit4.4 结合 Hamcrest 提供了一个新的断言语法——assertThat.使用assertThat的一个断言语句结合 Hamcrest 提供的匹配符,就可以表达全部的测试思想.

assertThat的基本语法assertThat(value, matcher)

/**数值匹配**/
//测试浮点数是否在1.0~8.8之间
assertThat(test1.getShares(), closeTo(1.0,8.8));
//测试变量是否大于指定值
assertThat(test1.getShares(), greaterThan(50));
//测试变量是否小于指定值
assertThat(test1.getShares(), lessThan(100));
//测试变量是否大于等于指定值
assertThat(test1.getShares(), greaterThanOrEqualTo(50));
//测试变量是否小于等于指定值
assertThat(test1.getShares(), lessThanOrEqualTo(100));//测试所有条件必须成立
assertThat(test1.getShares(), allOf(greaterThan(50),lessThan(100)));
//测试只要有一个条件成立
assertThat(test1.getShares(), anyOf(greaterThanOrEqualTo(50), lessThanOrEqualTo(100)));
//测试无论什么条件成立(还没明白这个到底是什么意思)
assertThat(test1.getShares(), anything());
//测试变量值等于指定值
assertThat(test1.getShares(), is(100));
//测试变量不等于指定值
assertThat(test1.getShares(), not(50));/**字符串匹配**/
String url = "http://www.taobao.com";
//测试变量是否包含指定字符
assertThat(url, containsString("taobao"));
//测试变量是否已指定字符串开头
assertThat(url, startsWith("http://"));
//测试变量是否以指定字符串结尾
assertThat(url, endsWith(".com"));
//测试变量是否等于指定字符串
assertThat(url, equalTo("http://www.taobao.com"));
//测试变量再忽略大小写的情况下是否等于指定字符串
assertThat(url, equalToIgnoringCase("http://www.taobao.com"));
//测试变量再忽略头尾任意空格的情况下是否等于指定字符串
assertThat(url, equalToIgnoringWhiteSpace("http://www.taobao.com"));/**集合匹配**/
List<User> user = new ArrayList<User>();
user.add(test1);
user.add(test2);
//测试集合中是否还有指定元素
assertThat(user, hasItem(test1));
assertThat(user, hasItem(test2));/**Map匹配**/
Map<String,User> userMap = new HashMap<String,User>();
userMap.put(test1.getUsername(), test1);
userMap.put(test2.getUsername(), test2);
//测试map中是否还有指定键值对
assertThat(userMap, hasEntry(test1.getUsername(), test1));
//测试map中是否还有指定键
assertThat(userMap, hasKey(test2.getUsername()));
//测试map中是否还有指定值
assertThat(userMap, hasValue(test2));

Junit新语法assertThat相关推荐

  1. JUnit4.4 新特性 assertThat 使用详解

    断言:预期与实际结果的判断 Assert JUnit4.4引入了新的断言语法'assertThat',使得程序员在编写单元测试的assert语句时,可以有更强的可读性,而且更加灵活. 基本语法:ass ...

  2. PHP7 RC7 Release对比PHP5.6快速排序20000数据性能体验以及新语法尝鲜

    最近Zend的PHP7已经 处于最后的BUG修复阶段,目前 已经更新RC7,对于Zend官方的说法PHP7的性能大约相比PHP5系列版本 提高2倍以上,增加了一些新的语法,摒弃了PHP5的一些影响性能 ...

  3. 第十六节:语法总结(3)(C#6.0和C#7.0新语法)

    一. C# 6.0 新语法 1. 自动属性初始化可以赋值 1 /// <summary> 2 /// 自动属性初始化 3 /// </summary> 4 public cla ...

  4. 1、ASP.NET MVC入门到精通——新语法

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...

  5. 用新语法写更简洁的ABAP代码

    相比其他语言,ABAP可能有很多特有的长处,但简洁从来就不是它的优点之一. 不像其他语言通过Library提供常用功能,ABAP大量使用内置声明(Built-In Statement) 来完善自身,这 ...

  6. 反思本地与测试服一个接口不同的响应:本地正常测试服不行500错误,原因php版本新语法不一样

    新php版本有类型规定与?? 有几个测试服  php版本都不一样 5.6  7.2的都有 我本地7.3 但是测试服务器上是5.6的,有7.3的新语法,直接报了一个500,最终排查出 是新语法的问题,调 ...

  7. Xcode 4.4 的新特性 | LLVM 4.0 的新语法

    WWDC 2012苹果全球开发者大会上,苹果针对LLVM编译器都做了重大改进,新版的Xcode 4.4中的LLVM编译器升级到了4.0,给Objective-C带来了很多令人惊喜的特性. 注意,下面的 ...

  8. Delphi - 新语法之类相关的

    技术交流,DH讲解. 今天就把Delphi新语法中与类相关都讲了. 1 静态系列. 静态成员变量,静态方法,静态属性. 静态方法只能使用静态成员变量或者其他常量. 一个例子: typeTMyClass ...

  9. Qt5 中的 signal/slot 新语法

    Qt 5 Alpha 已经发布.我们会在后面的文章中看到 Qt 5 的新变化.今天,我们先来看一下 Qt 5 带来的一个最主要的变化:signal/slot 机制的改变. Qt 5 之前的语法 在 Q ...

最新文章

  1. 隆重介绍恩智浦MCU机器学习教育套件——OpenART
  2. JZOJ 4238. 【五校联考5day2】纪念碑
  3. spring boot controller构造方法_面试前突击Spring,我只需要十分钟,那么你呢?
  4. Document的理解
  5. WebForm 使用点滴。。。。
  6. vue引入全局less实现全局变量的控制
  7. java uuid静态方法_Java UUID equals()方法与示例
  8. android用java写文本框_Android 使用TextView实现验证码输入框
  9. 提供oracle兼容特性报,【干货】K-DB为什么能全面兼容Oracle
  10. python面向对象教程_Python入门系列教程3-面向对象
  11. shell经典面试题根据文件创建用户名及密码(亲测)
  12. java下载天地图数据,天地图离线地图,可指定经纬度范围
  13. 宾得常用镜头群[转自东河寒梅]_我是亲民_新浪博客
  14. 转帖(http://hi.baidu.com/johnehuang/blog/item/e1e96782a4b04e97f703a6dc.html)
  15. ubuntu如何查看当前的ROS发行版本
  16. 600度近视眼恢复方法_高度近视600度如何恢复视力?这三大办法
  17. 计算机网络安全工作室介绍,计算机网络技术专业 “网络工作室”做法简介
  18. [转载]微信企业号:企业客户的移动应用入口
  19. 不用计算机怎么连接无线,不用电脑?手机如何调试无线路由器?
  20. 删除桌面的顽固IE(Internet Explorer)图标

热门文章

  1. linux网卡操作命令 ,查看Linux下网卡连接状态(up还是down)?
  2. Windows和Ubuntu双系统安装教程
  3. 如何快速验证你的创业想法是否可行?这里有7大策略
  4. 微服务架构-分布式解决方案-110:基于canal整合kafka异步解决数据一致性的问题
  5. python 如何安装numpy库?
  6. Ring3无敌进程让你的进程变得和smss.exe一样支持64
  7. WebGL,Cesium以及GeoJSON数据的简单介绍
  8. 摄像头之自动曝光,自动增益,图像深度 概念
  9. matlab设置线条颜色宽度线型
  10. #离散#SSL 1231 VIJOS 1238 容易的网络游戏