Junit学习笔记之二:hamcrest简介和TestSuite
2016-10-21 23:21
344 查看
hamcrest可以有效增加junit的测试能力,用一些相对通俗的语言来进行测试
要使用junit中的assertThat来进行断言
第一个参数表示实际值,第二个参数表示hamcrest的表达式
特别注意:如果使用junit4.10,必须把hamcrest的jar包移到junit的jar之前,否则,组合条件allOf,anyOf都会抛出异常
常用的比较方式
逻辑
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 - 测试字符串匹配
可以通过TestSuit来组成多个测试组件
测试原则:1、建议创建一个专门的sourcefolder -àtest来编写测试类代码
2、测试类的包应该保持和需要测试的类一致
3、测试单元中的每一个测试方法都必须独立执行,没有顺序,测试方法之间不能有任何的依赖性
测试结果:
Test ----->A
Test ----->B
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>1.3</version> </dependency>
要使用junit中的assertThat来进行断言
第一个参数表示实际值,第二个参数表示hamcrest的表达式
@Test public void testHamcrest() { //首先需要静态导入import static org.hamcrest.Matchers.*; //判断50是否大于20并且小于60,具体的hamcrest的比较参数可以在文档中查询 assertThat(50, allOf(greaterThan(20), lessThan(60))); //判断某个字符串是否以另一个字符串结尾 assertThat("abc.txt", endsWith("txt")); }
特别注意:如果使用junit4.10,必须把hamcrest的jar包移到junit的jar之前,否则,组合条件allOf,anyOf都会抛出异常
常用的比较方式
逻辑
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 - 测试字符串匹配
可以通过TestSuit来组成多个测试组件
测试原则:1、建议创建一个专门的sourcefolder -àtest来编写测试类代码
2、测试类的包应该保持和需要测试的类一致
3、测试单元中的每一个测试方法都必须独立执行,没有顺序,测试方法之间不能有任何的依赖性
import org.junit.Test; /** * Created by Administration on 2016/6/4. */ public class TestA { @Test public void fun(){ System.out.println("Test ----->A"); } }
import org.junit.Test; /** * Created by Administration on 2016/6/4. */ public class TestB { @Test public void fun(){ System.out.println("Test ----->B"); } }
//RunWith表示这个类是一个suite的类 @RunWith(Suite.class) //说明这个类中包含哪些测试组件 @Suite.SuiteClasses({ TestA.class, TestB.class }) public class TestSuit { }
测试结果:
Test ----->A
Test ----->B
相关文章推荐
- junit学习笔记(二):hamcrest和TestSuit
- JUnit学习之hamcrest、testSuite介绍及测试原则
- JUnit学习笔记之简介
- junit学习笔记(二):hamcrest和TestSuit
- JUnit学习笔记之NetBeans篇
- Velocity学习笔记3——Velocity 模板语言(VTL: Velocity Template Language)简介
- AppFuse学习笔记-简介
- 懒人的UML学习笔记1——UML简介
- JUnit学习笔记
- [MDX学习笔记之二]在MDX中处理边界情况
- PHP学习笔记(5)----phplib的简介及安装[原创]
- HTML语言学习笔记之二
- Java开发学习笔记之二:一个简单的Servlet
- java 5.0学习笔记之二
- ETL学习笔记之二:ETL与BI
- [设计模式学习笔记之二]设计模式和量体剪衣
- MPEG4 & H.264学习笔记之二 ------ 视频编码基本概念及时域模型
- Junit 学习笔记
- PHP学习笔记(5)----phplib的简介及安装[原创]
- Symbian开发学习笔记之二