在以前的junit测试中常用到断言,但是没有研究断言的源代码,最近在项目中采用swtbot时候,发现项目swtbot和junit底层都使用了hamcrest作为匹配工具 的.
SWTBot中finder中采用的是Hamcrest实现的.其中常用的如下:
1,WithText可以matcher有getText方法的swt widget。
2,WithLabel用来matcher特定的Label和CLabel widget。
3,WithId用来matcher控件的属性和值对。
4,WithMnemonic用来matcher有getText方法且会有助记符&的widget。
5,WidgetOfType用来matcher控件的类名。
6, WithToolTip可以matcher有getToolTipText方法的swt widget。
7,WithItem可以matcher有getItems方法的swt widget。
8,WithStyle可以matcher有特定样式的swt widget,如withStyle(SWT.PUSH,”SWT.PUSH”)。
9,WithRegex扩展withText用来matcher文本正则表示的widget。
10,InGroup可以在一个group内matcher swt widget。
11,InUIThread在一个UIThread内matcher另一个matcher。
12, AllOf用来定义matcher方法集来区配swt widget。
Hamcrest是什么东西呢?
Hamcrest是一个书写匹配器对象时允许直接定义匹配规则的框架.有大量的匹配器是侵入式的,例如UI验证或者数据过滤,但是匹配对象在书写灵活的测试是最常用.本教程将告诉你如何使用Hamcrest进行单元测试.
Hamcrest从一开始就设计结合不同的单元测试框架.例如,Hamcrest可以使用JUnit3和4和TestNG.(详细查看完整Hamcrest发布中的例子).在一个现有的测试套件中迁移到使用Hamcrest风格的断言是很容易的,因为其他断言风格可以和Hamcrest的共存.
通过使用从mock Objects框架概念匹配器到Hamcrest匹配器桥接适配器Hamcrest也可以在mock objects框架中.例如,JMock 1系统规定是Hamcrest风格.Hamcrest提供了一个JMock 1适配器来允许你在JMock 1测试中使用Hamcrest匹配器.JMock 2不需要这样一个适配器层,因为它被设计使用Hamcrest作为一个匹配库.Hamcrest还提供了EasyMock 2适配器.同样,详细查看Hamcrest例子.
Hamcrest带有一个有用的匹配器库.以下是一些最重要的.
- 核心
- anything - 总是匹配,如果你不关心测试下的对象是什么是有用的
- describedAs - 添加一个定制的失败表述装饰器
- is - 改进可读性装饰器 - 见下 “Sugar”
- 逻辑
- allOf - 如果所有匹配器都匹配才匹配, short circuits (很难懂的一个词,意译是短路,感觉不对,就没有翻译)(像 Java &&)
- anyOf - 如果任何匹配器匹配就匹配, short circuits (像 Java ||)
- not - 如果包装的匹配器不匹配器时匹配,反之亦然
- 对象
- equalTo - 测试对象相等使用Object.equals方法
- hasToString - 测试Object.toString方法
- instanceOf, isCompatibleType - 测试类型
- notNullValue, nullValue - 测试null
- sameInstance - 测试对象实例
- Beans
- hasProperty - 测试JavaBeans属性
- 集合
- array - 测试一个数组元素test an array’s elements against an array of matchers
- hasEntry, hasKey, hasValue - 测试一个Map包含一个实体,键或者值
- hasItem, hasItems - 测试一个集合包含一个元素
- hasItemInArray - 测试一个数组包含一个元素
- 数字
- closeTo - 测试浮点值接近给定的值
- greaterThan, greaterThanOrEqualTo, lessThan, lessThanOrEqualTo - 测试次序
- 文本
- equalToIgnoringCase - 测试字符串相等忽略大小写
- equalToIgnoringWhiteSpace - 测试字符串忽略空白
- containsString, endsWith, startsWith - 测试字符串匹配
相关推荐
赠送jar包:hamcrest-core-1.3.jar; 赠送原API文档:hamcrest-core-1.3-javadoc.jar; 赠送源代码:hamcrest-core-1.3-sources.jar; 包含翻译后的API文档:hamcrest-core-1.3-javadoc-API文档-中文(简体)版.zip...
hamcrest-core-1.3.jar包 是一款hamcrest的核心包,主要用于开发者使用,一般在使用hamcrest框架的使用都会用到这个包,一般我们在下载安装junit的时候都包含了这个包。
hamcrest-core-1.3.ORC2.jar:hamcrest的核心包,使用hamcrest框架必须引入的包。直接下载到本地解压后即可使用。
支持Junit测试,简单实用,只需要添加即可,hamcrest-library-1.3.jar包是hamcrest的核心包,这个jar包主要用于补充hamcrest core包中的断言,导入后就可以正常开发使用了,主要适用于eclipse中的JUnit4测试操作,...
赠送jar包:hamcrest-2.1.jar; 赠送原API文档:hamcrest-2.1-javadoc.jar; 赠送源代码:hamcrest-2.1-sources.jar; 赠送Maven依赖信息文件:hamcrest-2.1.pom; 包含翻译后的API文档:hamcrest-2.1-javadoc-API...
hamcrest-library.rar hamcrest-library.rar hamcrest-library.rar
赠送jar包:hamcrest-2.2.jar; 赠送原API文档:hamcrest-2.2-javadoc.jar; 赠送源代码:hamcrest-2.2-sources.jar; 赠送Maven依赖信息文件:hamcrest-2.2.pom; 包含翻译后的API文档:hamcrest-2.2-javadoc-API...
引入junit-4.12.jar之外,还要引入2个依赖jar包:hamcrest-core-1.3.rc2.jar,hamcrest-library-1.3.rc2.jar,这里分享一下这两个包。
hamcrest-1.3.zip jar包和相关文档
hamcrest-core-1.3.rc2.jar/hamcrest-library-1.3.rc2.jar 两个jar的打包 单元测试JUnit必须引用的jar包,否则会报错无法启动测试程序
该压缩包中包含了 hamcrest-core-1.3.jar包和 hamcrest-core-1.3.source.jar包
junit.jar + hamcrest-core.jar + hamcrest-library.jar,测试必备包
JUnit4 报错 no tests found with test runner 'JUnit4' 需要添加 hamcrest-core-2.2.jar 包重新启动
找了好久找到的junit测试框架,包含全部包:hamcrest-all-1.2.jar,hamcrest-core-1.2.jar,hamcrest-generator-1.2.jar,hamcrest-integration-1.2.jar,hamcrest-library-1.2.jar。
junit 和 hamcrest jar集成 (junit-4.8.2.jar,junit-4.11.jar,junit-4.11-javadoc.jar,junit-4.11-sources.jar,hamcrest-core-1.3.jar,hamcrest-library-1.3.jar
赠送jar包:hamcrest-library-1.3.jar; 赠送原API文档:hamcrest-library-1.3-javadoc.jar; 赠送源代码:hamcrest-library-1.3-sources.jar; 赠送Maven依赖信息文件:hamcrest-library-1.3.pom; 包含翻译后的API...
Hamcrest是一个Junit的Assert增强框架,是一个比较好用的工具类
hamcrest-junit-2.0.0.0.jar