正文描述:《junit4中使用hamcrest测试框架的assertthat断言 小实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JUnit4中使用Hamcrest测试框架的assertThat断言小实例.txt人永远不知道谁哪次不经意的跟你说了再见之后就真的再也不见了。一分钟有多长?这要看你是蹲在厕所里面,还是等在厕所外面……?1.JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活;2.使用全新的断言语法:assertThat,结合Hamcest提供的匹配符,只用这一个方法,就可以实现所有的测试;3.assertThat语法如下:assertThat(Tactual,Matchermatc
2、her);assertThat(Stringreason,Tactual,Matchermatcher);其中actual为需要测试的变量,matcher为使用Hamcrest的匹配符来表达变量actual期望值的声明;4.注意事项:a.必须导入JUnit4.4之后的版本才能使用assertThat方法;b.不需要继承TestCase类,但是需要测试方法前必须加“@Test”。实例:publicclassC{publicintadd(inta,intb){returna+b;}publicdoublediv(doublea,doubleb){re
3、turna/b;}publicStringgetName(Stringname){returnname;}publicListgetList(Stringitem){Listl=newArrayList();l.add(item);returnl;}publicMapgetMap(Stringkey,Stringvalue){Mapm=newHashMap();m.put(key,value);returnm;}}=
4、============================================?importstaticorg.junit.Assert.*;importstaticorg.hamcrest.Matchers.*;importjava.util.List;importjava.util.Map;importorg.junit.Test;publicclassCTest{@TestpublicvoidtestAdd(){//一般匹配符ints=newC().add(1,1);//allOf:所有条件必须都成立,测试才通过assertThat(s
5、,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));//数值匹配符doubled=newC().div(10,3);//c
6、loseTo:浮点型变量的值在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:变量的值
7、小于等于指定值时,测试通过assertThat(d,lessThanOrEqualTo(3.4));//字符串匹配符Stringn=newC().getName("Magci");//containsString:字符串变量中包含指定字符串时,测试通过assertThat(n,containsString("ci"));//startsWith:字符串变量以指定字符串开头时,测试通过assertThat(n,startsWith("Ma"));//endsWith:字符串变量以指定字符串结尾时,测试通过assertThat(n,endsWith("i"
8、));//euqalTo:字符串变量等于指定字符串时,测试通过assertThat(n,equ
显示全部收起