用了JUnit有一段时间了,竟然从来没有用过assertThat。assertThat是JUnit在引入hamcrest后加入的新语句。这也难怪,JUnit的入门教程中使用的都是assertEquals,一看就懂;相对来讲assertThat的语法就比较晦涩难懂了,而且还需要学习一堆不知道什么时候才要用到的匹配器对象。
本来书写简单的单元测试确实并不需要用到assertThat,但是当需要对断言或条件进行测试,并显示条件的详细信息时,使用hamcrest来进行处理就比较好了。
比如希望测试一个整数是否大于0时,使用JUnit原有的语可以这样写
@Test
public void test() throws Exception {
int i = 0;
assertTrue("The input number should be greater than 0", i > 0);
}
输出的错误信息将是
java.lang.AssertionError: The input number should be greater than 0
如果我们需要输出更详细的信息,如 expected condition "i > 0", but actual value was "-1" ,就需要定义自己的Exception,并输入更多的参数,像这样:
int i = -1;
assertConditionSatisfied("i > 0", i > 0, i);
而使用 hamcrest 写起来要简单一些:
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
@Test
public void test() throws Exception {
int i = 0;
assertThat(i, greaterThan(0));
}
将会有这样的输出
java.lang.AssertionError:
Expected: a value greater than <0>
got: <0>
通过定位我们能够找到出错的那一句,从而能够比较快的了解出错的原因。
更多参考请见:
hamcrest 主页 http://code.google.com/p/hamcrest
hamcrest 工程的中文简要介绍 http://www.oschina.net/p/hamcrest
hamcrest 使用简介 http://rdc.taobao.com/blog/qa/?p=3541
plus: 一个eclipse中出现错误的解决方法
java
.lang
.SecurityException: class
"org
.hamcrest
.Matchers
"'s signer
information
does
not
match
signer
information
of
other
classes
in
the
same
package
该错误的原因是:我在这里引用了hamcrest-all,而JUnit内部也使用了hamcrest,所以在加载类的时候版本顺序出了错误,只要调整一下hamcrest-all包的位置改在JUnit包之前即可
参考自:http://emptylist.wordpress.com/tag/junit/
Anyway, to solve the problem you have
just to load the Lambdaj jar before the JUnit stuff (Properties, Java
Build Path, Order and Export).
分享到:
相关推荐
辅助软件 USB-TTL测试工具辅助软件 USB-TTL测试工具辅助软件 USB-TTL测试工具辅助软件 USB-TTL测试工具辅助软件 USB-TTL测试工具辅助软件 USB-TTL测试工具辅助软件 USB-TTL测试工具辅助软件 USB-TTL测试工具辅助软件...
1.10正式版 单机测试用辅助工具1.10正式版 单机测试用辅助工具
Inspect 自动化测试辅助工具
测试辅助软件之CPU内存记录软件,可以查看CPU、内存型号,在扩充内存时,可以用此工具查看自己的cpu、内存信息,然后购买相应的内存。
dvtk-dicom协议测试辅助工具
Inspect 自动化测试辅助工具Inspect 自动化测试辅助工具Inspect 自动化测试辅助工具
基于Python+Flask的matoi渗透测试辅助工具-毕业设计源码+使用文档(高分优秀项目).zip 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,...
网络编程辅助工具(编码测试工具有更新).rar
类似按键精灵,可生成鼠标键盘消息,可用于记录指定进程的CPU、内存占用率。用于帮助桌面软件的测试。依赖vs2017运行库。
Android安全测试辅助工具V0.1
相机辅助测试工具,含快门测试、测点、图片恢复等
FS改能力辅助工具辅助工具辅助工具辅助工具辅助工具
1.PICT的使用 2.用户使用指南.pdf 3.工具使用相关(截图、命令) 4.PICT33.msi 安装包
是定向井中常用的MWD脉冲器的绝缘性测试辅助工具,主要准对于哈里伯顿(SPERRY-SUN)所产的mark4脉冲器的绝缘性测试。
国密算法工具smartTool软件,算法测试工具,可用于国密算法辅助测试,包括对称及非对称算法。
QTP测试辅助小工具,更方便的进行测试。这个小工具是测试人员自己开发的,非常实用
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较...
将一些常见的 get , post 请求 测试 写入, 对一些验证码的识别功能进行添加,可以更好的辅助网站 API 的测试
好用的正则表达式验证、辅助工具。可以快速检测语法、查看匹配结果等等。属于你开发正则表达式时必备辅助开发工具
行业资料-交通装置-一种小车式断路器回路电阻测试辅助工具.zip