Junit4中的新断言assertThat的使用方法
- 引入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));}}
一般匹配符
allOf
匹配符表明如果接下来的所有条件必须都成立测试才通过,相当于“与”(&&)
assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );anyOf
匹配符表明如果接下来的所有条件只要有一个成立则测试通过,相当于“或”(||)
assertThat( testedNumber, anyOf( greaterThan(16), lessThan(8) ) );anything
匹配符表明无论什么条件,永远为true
assertThat( testedNumber, anything() );is
匹配符表明如果前面待测的object等于后面给出的object,则测试通过
assertThat( testedString, is( “developerWorks” ) );not
匹配符和is匹配符正好相反,表明如果前面待测的object不等于后面给出的object,则测试通过
assertThat( testedString, not( “developerWorks” ) );
字符串相关匹配符
containsString
匹配符表明如果测试的字符串testedString 包含 子字符串"developerWorks"则测试通过
assertThat( testedString, containsString( “developerWorks” ) );endsWith
匹配符表明如果测试的字符串testedString以子字符串"developerWorks"结尾则测试通过
assertThat( testedString, endsWith( “developerWorks” ) );startsWith
匹配符表明如果测试的字符串testedString以子字符串"developerWorks"开始则测试通过
assertThat( testedString, startsWith( “developerWorks” ) );equalTo
匹配符表明如果测试的testedValue等于expectedValue则测试通过,equalTo可以测试数值之间,字符串
之间和对象之间是否相等,相当于Object的equals方法
assertThat( testedValue, equalTo( expectedValue ) );equalToIgnoringCase
匹配符表明如果测试的字符串testedString在忽略大小写的情况下等于"developerWorks"则测试通过
assertThat( testedString, equalToIgnoringCase( “developerWorks” ) );equalToIgnoringWhiteSpace
匹配符表明如果测试的字符串testedString在忽略头尾的任意个空格的情况下等于"developerWorks"则
测试通过,注意:字符串中的空格不能被忽略
assertThat( testedString, equalToIgnoringWhiteSpace( “developerWorks” ) );
数值相关匹配符
closeTo
匹配符表明如果所测试的浮点型数testedDouble在20.0±0.5范围之内则测试通过
assertThat( testedDouble, closeTo( 20.0, 0.5 ) );greaterThan
匹配符表明如果所测试的数值testedNumber大于16.0则测试通过
assertThat( testedNumber, greaterThan(16.0) );lessThan
匹配符表明如果所测试的数值testedNumber小于16.0则测试通过
assertThat( testedNumber, lessThan (16.0) );greaterThanOrEqualTo
匹配符表明如果所测试的数值testedNumber大于等于16.0则测试通过
assertThat( testedNumber, greaterThanOrEqualTo (16.0) );lessThanOrEqualTo
匹配符表明如果所测试的数值testedNumber小于等于16.0则测试通过
assertThat( testedNumber, lessThanOrEqualTo (16.0) );
collection相关匹配符
hasEntry
匹配符表明如果测试的Map对象mapObject含有一个键值为"key"对应元素值为"value"的Entry项则测试通过
assertThat( mapObject, hasEntry( “key”, “value” ) );hasItem
匹配符表明如果测试的迭代对象iterableObject含有元素“element”项则测试通过
assertThat( iterableObject, hasItem ( “element” ) );hasKey
匹配符表明如果测试的Map对象mapObject含有键值“key”则测试通过
assertThat( mapObject, hasKey ( “key” ) );hasValue
匹配符表明如果测试的Map对象mapObject含有元素值“value”则测试通过
assertThat( mapObject, hasValue ( “key” ) );
Junit4中的新断言assertThat的使用方法相关推荐
- java 替换 word_Java 在 Word 文档中使用新文本替换指定文本的方法
创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...
- ajax无法open,ajax中打开新页面使用window.open方法被拦截的解决方法
$('.testA').unbind('click').bind('click',function(){ var result=""; $.ajax({ url:'http://l ...
- JNI中创建新的线程回调java方法的技巧
在实际项目中,经常需要在Native层创建新的线程处理一些耗时操作,然后将结果回调给java层.如果按照普通的方式,直接获取MethodID,然后新线程中调用CallxxxMethod(),这样肯定是 ...
- windows 7中添加新硬件的两种方法(本地回环网卡)
最近在windows7上使用VMwareWorkstation7玩一些实验,遇到需要配置不同网络的问题. 因为在windows2003server上习惯使用要本地回环网卡了,那就想着在Windows7 ...
- uboot中添加新型号步骤以及编译方法
一.添加新型号的支持: 1.在board.cfg 添加需要支持的型号: 2.在include/configs下添加支持新型号的.h文件: 二.uboot编译方法: 1.配置编译的环境变量: expor ...
- discuz后台主导航栏菜单中添加新的菜单项的方法
http://blog.csdn.net/shgly/article/details/11757521
- JUNIT4 断言assertThat greaterThan
使用assertThat,项目要引用以下jar包 junit-4.12.jar hamcrest-core-1.3.jar hamcrest-libriry-1.3.jar pom.xml <d ...
- linux如何右键新建文件夹,在Ubuntu 18.04右键菜单中增加新文档(New Document)及其他类型选项...
本文教你在Ubuntu 18.04操作系统下使用命令操作在右键菜单中增加"新文档(New Document)"选项,包括为不同文件类型增加右键菜单选项的方法.起因是当我尝试创建一个 ...
- JUnit4单元测试、JUnit4使用详解、assertThat用法
2019独角兽企业重金招聘Python工程师标准>>> 一.JUnit基本介绍 1.简介 JUnit是一个开放源码的.Java语言的单元测试框架,用于测试期望结果的断言(Assert ...
最新文章
- 使用pytorch最关键的几个点
- 浏览器兼容性 问题收集
- 实施工程师常用linux命令,009Linux管理日常使用的基本命令
- 数字新消费重塑新中部,岳麓峰会再汇“长沙内能”
- 二叉查找树--java
- P1975 [国家集训队]排队(三维偏序)
- JAVA程序员面试题集合
- docker容器状态跟踪及疑惑
- 栈溢出笔记1.10 基于SEH的栈溢出
- 测试工程师python面试常问问题_面试测试工程师一般会问些什么?
- shell time 计算
- shell 查看空行与删除空行
- python 数据类笔试题_数据分析岗Python笔试题
- 厦门大学847信号与系统考研参考书目
- ios如何设置系统定位服务器地址,iOS开发之iOS10.0之后如何从APP进入系统定位服务设置界面...
- 中国超市智能储物柜市场需求动态与盈利前景预测报告2022-2027年
- wps教鞭功能_你未必知道的WPS神奇功能
- ios 中webView加载html文本图片显示不全
- 动图制作工具---LICEcap
- laravel连接mysql连接数过多_Laravel 使用Voyager导致多个数据库连接总是返回默认连接?...
热门文章
- NUC1921 E.迷雾森林【筛选法】
- LeetCode —— 链表相关(206、141)
- matlab 常用机器学习算法的实现
- 尔雅/广雅 —— 古代的字典
- R 语言基本操作(基本信息的查看、与本地文件系统交互、编译器版本升级)
- Python 进阶 —— 可变参数(*args, **kw)与参数收集的逆过程
- 【剑指 offer】(二十一)—— 包含 min 函数的栈
- Trick(九)—— ++i 与 i++ 的本质区别
- 标准模板库(STL)之 map 列传
- java五子棋人机对战_实现简单的人机对战五子棋(实践)