junit已经集成Hamcrest但是还是需要引用hamcrest-library,不然只有基本方法,高级的没有

<dependency> <groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>            </dependency><dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-library</artifactId><version>1.3</version></dependency> 

测试集合中某个属性是否包含某一项

@Testpublic void findByName() {List result = userDao.findByName("张");Assert.assertNotNull(result);assertThat((List<Object>)result, hasItem(hasProperty("username",is("张三"))));}

必须这样写 参考 http://stamen.iteye.com/blog/1985177

有用的测试用例

    @Test
public void testAdd() {//一般匹配符int s = new T().add(1, 1);//allOf:所有条件必须都成立,测试才通过       assertThat(s, allOf(greaterThan(1), lessThan(3)));//anyOf:只要有一个条件成立,测试就通过assertThat(s, anyOf(greaterThan(1), lessThan(1)));//anything:无论什么条件,测试都通过assertThat(s, anything());//is:变量的值等于指定值时,测试通过assertThat(s, is(2));//not:和is相反,变量的值不等于指定值时,测试通过assertThat(s, not(1));//数值匹配符double d = new T().div(10, 3);//closeTo:浮点型变量的值在3.0±0.5范围内,测试通过assertThat(d, closeTo(3.0, 0.5));//greaterThan:变量的值大于指定值时,测试通过assertThat(d, greaterThan(3.0));//lessThan:变量的值小于指定值时,测试通过assertThat(d, lessThan(3.5));//greaterThanOrEuqalTo:变量的值大于等于指定值时,测试通过assertThat(d, greaterThanOrEqualTo(3.3));//lessThanOrEqualTo:变量的值小于等于指定值时,测试通过assertThat(d, lessThanOrEqualTo(3.4));//字符串匹配符String n = new T().getName("Magci");//containsString:字符串变量中包含指定字符串时,测试通过assertThat(n, containsString("ci"));//startsWith:字符串变量以指定字符串开头时,测试通过assertThat(n, startsWith("Ma"));//endsWith:字符串变量以指定字符串结尾时,测试通过assertThat(n, endsWith("i"));//euqalTo:字符串变量等于指定字符串时,测试通过assertThat(n, equalTo("Magci"));//equalToIgnoringCase:字符串变量在忽略大小写的情况下等于指定字符串时,测试通过assertThat(n, equalToIgnoringCase("magci"));//equalToIgnoringWhiteSpace:字符串变量在忽略头尾任意空格的情况下等于指定字符串时,测试通过assertThat(n, equalToIgnoringWhiteSpace(" Magci   "));//集合匹配符List<String> l = new T().getList("Magci");//hasItem:Iterable变量中含有指定元素时,测试通过assertThat(l, hasItem("Magci"));Map<String, String> m = new T().getMap("mgc", "Magci");//hasEntry:Map变量中含有指定键值对时,测试通过assertThat(m, hasEntry("mgc", "Magci"));//hasKey:Map变量中含有指定键时,测试通过assertThat(m, hasKey("mgc"));//hasValue:Map变量中含有指定值时,测试通过assertThat(m, hasValue("Magci"));
}
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;public class T {public int add(int a, int b) {return a + b;}public double div(double a, double b) {return a / b;}public String getName(String name) {return name;}public List<String> getList(String item) {List<String> l = new ArrayList<String>();l.add(item);return l;}public Map<String, String> getMap(String key, String value) {Map<String, String> m = new HashMap<String, String>();m.put(key, value);return m;}}
@Testpublic void test() {//assertEquals()方法,用来查看对象中存的值是否是期待的值,与字符串比较中使用的equals()方法类似assertEquals(1, 1);//assertSame()和assertNotSame()方法,用来比较两个对象的引用是否相等和不相等,类似于通过“==”和“!=”比较两个对象assertSame("abc","abc");assertNotSame("abc", "abcd");//assertNull()和assertNotNull()方法,用来查看对象是否为空和不为空assertNull("should be null", null);assertNotNull("should be not null", "abc");//assertFalse()和assertTrue()方法,用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则测试成功,如果是true则失败,assertTrue()与之相反assertTrue("failure - should be true", true);assertFalse("failure - should be false", false);}

junit集成Hamcrest测试集合中某个属性是否包含特定值相关推荐

  1. stream筛选出集合中对象属性重复值

    stream筛选出集合中对象属性重复值 字符串集合筛选 List<String> strings = Arrays.asList("a", "bb" ...

  2. 基于python渗透测试_Python中基于属性的测试简介

    基于python渗透测试 by Shashi Kumar Raja 由Shashi Kumar Raja Python中基于属性的测试简介 (Intro to property-based testi ...

  3. java对汉字按照拼音首字母排序_java对象集合中某个属性的汉字进行按拼音进行排序...

    在开发中,有些时候我们要对一个集合中的对象的某个属性进行按拼音排序,便于更快的找到汉字,我采用Comparator接口,在实现这个接口里定义排序规则,取得比较对象的汉字编码,并将其转换成字符串,运用S ...

  4. 使用Properties集合存储数据,遍历取出Properties集合中的数据

    package com.learn.demo07.Prop;import java.io.FileOutputStream; import java.io.FileReader; import jav ...

  5. java8 list 去重_Java8-Stream在集合中的8种应用案例

    前言 Java8新特性我们使用的应该比较多了,今天这里整理了个人使用最多的8种场景,希望对大家有所帮助. Java Stream在集合中的运用案例 遍历 遍历也许是我们使用最多的功能了,在Java8之 ...

  6. 深入理解JavaScript中的属性和特性

    深入理解JavaScript中的属性和特性 JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaSc ...

  7. 【CSS】CSS中alt属性和title属性用法

    你对CSS中的alt属性和title属性的使用是否熟悉,这里和大家分享一下两者的使用,CSS中alt属性只能用在img.area和input元素中(包括applet元素),对于input元素,alt属 ...

  8. 软件测试实验——安装并使用junit、hamcrest和eclemma进行简单测试

    一.安装junit.hamcrest和eclemma 首先,到junit官网下载junit和hamcrest. 新建java项目 完整代码已经上传至github:flyzero的coding路 实验内 ...

  9. springboot集成Junit在执行测试类的时候提示Failed to resolve异常

    项目场景:springboot集成Junit在执行测试类的时候提示Failed to resolve异常 项目场景:springboot版本2.5.7,Junit版本:4.13.2,在执行测试类的时候 ...

最新文章

  1. 华为鸿蒙被扒出来安卓,华为鸿蒙被“实锤”,操作界面曝光,为何被吐槽是换皮安卓?...
  2. 第十天2017/04/21(1、函数指针、❤动态库回调❤)
  3. php报表服务器配置,服务器_SQL Server 2008升级报表服务器数据库,报表服务器数据库可以为一个 - phpStudy...
  4. oracle的pdb,oracle pdb基本管理
  5. 数据结构与算法--4.使用堆栈模拟队列
  6. Python 中 3 个不可思议的返回
  7. java菜单管理的实现方式_智能停车场管理系统的收费实现方式有哪些?
  8. 【报告分享】2021四大行业品牌蓝V社媒内容运营观察报告.pdf(附下载链接)
  9. 数据库---查询操作
  10. Hexo 简明入门教程(一)
  11. 应用管理系列 — 怎么管理Sybase数据库
  12. 机器人编程和python的区别_乐高机器人编程和计算机编程的区别
  13. win10命令提示符怎么打开_技巧,win10蓝屏SYSTEM_PTE_MISUSE怎么解决
  14. SpringBoot整合Dubbo
  15. 裁员潮下的打工人,怎么把手里的饭碗端稳?
  16. 联邦学习学习笔记——论文理解《Communication-Efficient Learning of Deep Networks from Decentralized Data》
  17. 4p营销组合策略案例_营销组合策略的4P讲解
  18. LeetCode312:戳气球
  19. 好家伙谷歌翻译又不能用了(有效解决方法)
  20. ios9 网络请求出错The resource could not be loaded becaus

热门文章

  1. linux系统创建lvm卷,LVM逻辑卷创建管理
  2. Matplot pyplot绘制单图,多子图不同样式详解,这一篇就够了
  3. python deque双端队列的神奇用法
  4. Don‘t entangle those useless things
  5. qemu模拟Cortex-A57运行Linux4.5.1
  6. gnome硬盘分析_三款基于GUI和终端的实用Linux磁盘扫描工具
  7. 吴恩达神经网络和深度学习——第四周笔记
  8. 残差平方和ssr的计算公式为_如何为你的回归问题选择最合适的机器学习方法?...
  9. 设置flashfxp选中ftp密码的时候显示出来看
  10. webstorm2018修改运行web page端口号,并且让web在本地局域网内用IP访问