• 引入junit4的jar包
  import static org.hamcrest.MatcherAssert.*;  import static org.hamcrest.CoreMatchers.*;     import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.junit.Before;import org.junit.Test;import com.lyh.share.model.User;public class UserDaoTest {private User test1;private User test2;@Beforepublic void init(){test1 = new User();test1.setUsername("tt1");test1.setPassword("123");test1.setShares(50);test2 = new User();test2.setUsername("tt2");test2.setPassword("321");test2.setShares(20);}@Testpublic void findUser(){/**数值匹配**///测试变量是否大于指定值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));}}

一般匹配符

  1. allOf

    匹配符表明如果接下来的所有条件必须都成立测试才通过,相当于“与”(&&)
    assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );

  2. anyOf

    匹配符表明如果接下来的所有条件只要有一个成立则测试通过,相当于“或”(||)
    assertThat( testedNumber, anyOf( greaterThan(16), lessThan(8) ) );

  3. anything

    匹配符表明无论什么条件,永远为true
    assertThat( testedNumber, anything() );

  4. is

    匹配符表明如果前面待测的object等于后面给出的object,则测试通过
    assertThat( testedString, is( “developerWorks” ) );

  5. not

    匹配符和is匹配符正好相反,表明如果前面待测的object不等于后面给出的object,则测试通过
    assertThat( testedString, not( “developerWorks” ) );

字符串相关匹配符

  1. containsString

    匹配符表明如果测试的字符串testedString 包含 子字符串"developerWorks"则测试通过
    assertThat( testedString, containsString( “developerWorks” ) );

  2. endsWith

    匹配符表明如果测试的字符串testedString以子字符串"developerWorks"结尾则测试通过
    assertThat( testedString, endsWith( “developerWorks” ) );

  3. startsWith

    匹配符表明如果测试的字符串testedString以子字符串"developerWorks"开始则测试通过
    assertThat( testedString, startsWith( “developerWorks” ) );

  4. equalTo

    匹配符表明如果测试的testedValue等于expectedValue则测试通过,equalTo可以测试数值之间,字符串

    之间和对象之间是否相等,相当于Object的equals方法
    assertThat( testedValue, equalTo( expectedValue ) );

  5. equalToIgnoringCase

    匹配符表明如果测试的字符串testedString在忽略大小写的情况下等于"developerWorks"则测试通过
    assertThat( testedString, equalToIgnoringCase( “developerWorks” ) );

  6. equalToIgnoringWhiteSpace

    匹配符表明如果测试的字符串testedString在忽略头尾的任意个空格的情况下等于"developerWorks"则

    测试通过,注意:字符串中的空格不能被忽略
    assertThat( testedString, equalToIgnoringWhiteSpace( “developerWorks” ) );

数值相关匹配符

  1. closeTo

    匹配符表明如果所测试的浮点型数testedDouble在20.0±0.5范围之内则测试通过
    assertThat( testedDouble, closeTo( 20.0, 0.5 ) );

  2. greaterThan

    匹配符表明如果所测试的数值testedNumber大于16.0则测试通过
    assertThat( testedNumber, greaterThan(16.0) );

  3. lessThan

    匹配符表明如果所测试的数值testedNumber小于16.0则测试通过
    assertThat( testedNumber, lessThan (16.0) );

  4. greaterThanOrEqualTo

    匹配符表明如果所测试的数值testedNumber大于等于16.0则测试通过
    assertThat( testedNumber, greaterThanOrEqualTo (16.0) );

  5. lessThanOrEqualTo

    匹配符表明如果所测试的数值testedNumber小于等于16.0则测试通过
    assertThat( testedNumber, lessThanOrEqualTo (16.0) );

collection相关匹配符

  1. hasEntry

    匹配符表明如果测试的Map对象mapObject含有一个键值为"key"对应元素值为"value"的Entry项则测试通过
    assertThat( mapObject, hasEntry( “key”, “value” ) );

  2. hasItem

    匹配符表明如果测试的迭代对象iterableObject含有元素“element”项则测试通过
    assertThat( iterableObject, hasItem ( “element” ) );

  3. hasKey

    匹配符表明如果测试的Map对象mapObject含有键值“key”则测试通过
    assertThat( mapObject, hasKey ( “key” ) );

  4. hasValue

    匹配符表明如果测试的Map对象mapObject含有元素值“value”则测试通过
    assertThat( mapObject, hasValue ( “key” ) );

Junit4中的新断言assertThat的使用方法相关推荐

  1. java 替换 word_Java 在 Word 文档中使用新文本替换指定文本的方法

    创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...

  2. ajax无法open,ajax中打开新页面使用window.open方法被拦截的解决方法

    $('.testA').unbind('click').bind('click',function(){ var result=""; $.ajax({ url:'http://l ...

  3. JNI中创建新的线程回调java方法的技巧

    在实际项目中,经常需要在Native层创建新的线程处理一些耗时操作,然后将结果回调给java层.如果按照普通的方式,直接获取MethodID,然后新线程中调用CallxxxMethod(),这样肯定是 ...

  4. windows 7中添加新硬件的两种方法(本地回环网卡)

    最近在windows7上使用VMwareWorkstation7玩一些实验,遇到需要配置不同网络的问题. 因为在windows2003server上习惯使用要本地回环网卡了,那就想着在Windows7 ...

  5. uboot中添加新型号步骤以及编译方法

    一.添加新型号的支持: 1.在board.cfg 添加需要支持的型号: 2.在include/configs下添加支持新型号的.h文件: 二.uboot编译方法: 1.配置编译的环境变量: expor ...

  6. discuz后台主导航栏菜单中添加新的菜单项的方法

    http://blog.csdn.net/shgly/article/details/11757521

  7. JUNIT4 断言assertThat greaterThan

    使用assertThat,项目要引用以下jar包 junit-4.12.jar hamcrest-core-1.3.jar hamcrest-libriry-1.3.jar pom.xml <d ...

  8. linux如何右键新建文件夹,在Ubuntu 18.04右键菜单中增加新文档(New Document)及其他类型选项...

    本文教你在Ubuntu 18.04操作系统下使用命令操作在右键菜单中增加"新文档(New Document)"选项,包括为不同文件类型增加右键菜单选项的方法.起因是当我尝试创建一个 ...

  9. JUnit4单元测试、JUnit4使用详解、assertThat用法

    2019独角兽企业重金招聘Python工程师标准>>> 一.JUnit基本介绍 1.简介 JUnit是一个开放源码的.Java语言的单元测试框架,用于测试期望结果的断言(Assert ...

最新文章

  1. 使用pytorch最关键的几个点
  2. 浏览器兼容性 问题收集
  3. 实施工程师常用linux命令,009Linux管理日常使用的基本命令
  4. 数字新消费重塑新中部,岳麓峰会再汇“长沙内能”
  5. 二叉查找树--java
  6. P1975 [国家集训队]排队(三维偏序)
  7. JAVA程序员面试题集合
  8. docker容器状态跟踪及疑惑
  9. 栈溢出笔记1.10 基于SEH的栈溢出
  10. 测试工程师python面试常问问题_面试测试工程师一般会问些什么?
  11. shell time 计算
  12. shell 查看空行与删除空行
  13. python 数据类笔试题_数据分析岗Python笔试题
  14. 厦门大学847信号与系统考研参考书目
  15. ios如何设置系统定位服务器地址,iOS开发之iOS10.0之后如何从APP进入系统定位服务设置界面...
  16. 中国超市智能储物柜市场需求动态与盈利前景预测报告2022-2027年
  17. wps教鞭功能_你未必知道的WPS神奇功能
  18. ios 中webView加载html文本图片显示不全
  19. 动图制作工具---LICEcap
  20. laravel连接mysql连接数过多_Laravel 使用Voyager导致多个数据库连接总是返回默认连接?...

热门文章

  1. NUC1921 E.迷雾森林【筛选法】
  2. LeetCode —— 链表相关(206、141)
  3. matlab 常用机器学习算法的实现
  4. 尔雅/广雅 —— 古代的字典
  5. R 语言基本操作(基本信息的查看、与本地文件系统交互、编译器版本升级)
  6. Python 进阶 —— 可变参数(*args, **kw)与参数收集的逆过程
  7. 【剑指 offer】(二十一)—— 包含 min 函数的栈
  8. Trick(九)—— ++i 与 i++ 的本质区别
  9. 标准模板库(STL)之 map 列传
  10. java五子棋人机对战_实现简单的人机对战五子棋(实践)