接口测试从零开始系列4_junit断言介绍

上一篇 / 下一篇  2011-12-12 18:53:21 / 个人分类:接口测试

一.Junit4断言

assertEquals(a, b)

assertFalse(a)

assertTrue(a)       

assertNotNull(a)

assertNull(a)

assertNotSame(a, b)

assertSame(a, b)  

   @Test

   publicvoidtestAssert()throwsException {

       intexpectNum = 123;

       intactuNum = 123;

       String storeId ="123456";     

       // assertEquals(expect,actual),测试expect是否等于actualexpectactual是原始类型数值(primitive value)或者必须为实现比较而具有equal方法)

       assertEquals(expectNum, actuNum);//运行成功

       assertEquals(storeId,"12345");//运行失败

       //assertFalse(condition)测试是否为false(假),condition是一个Boolean数值

       assertFalse(expectNum==100);//运行成功

       // assertTrue(condition)    测试是否为true(真),condition是一个Boolean数值

       assertTrue(expectNum==123);//运行成功      

       //assertNotNull(object),测试object是否非空,object是一个对象或者null

       PingJia pingjia=null;

       assertNotNull(pingjia);//运行失败

       //assertNull(object),测试object是否非空,object是一个对象或者null

       assertNull(pingjia);//运行成功

       // assertNotSame(unexpected, actual)测试unexpectedactual是否没有都引用同一个对象。

       String storeId1 = storeId;

       assertNotSame(storeId, storeId1);//运行失败

       // assertSame(unexpected, actual)测试unexpectedactual是否没有都引用同一个对象。

       assertSame(storeId, storeId1);//运行成功 

   }

二.junit新断言

1.       JUnit4.4引入了Hamcrest框架,使用全新的断言语法:assertThat,结合Hamcest提供的匹配符,只用这一个方法,就可以实现所有的测试,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活;

2.       assertThat语法如下:

 assertThat(T actual, Matcher<T> matcher);

assertThat(String reason, T actual, Matcher<T> matcher);

actual是接下来想要验证的值;
matcher
是使用Hamcrest匹配符来表达的对前面变量所期望的值的声明,如果actual值与matcher所表达的期望值相符,则断言成功,否则断言失败。

reason是自定义的断言失败时显示的信息。

3.       注意事项:

    a. JUnit4.4之后的版本才能使用assertThat方法;

4.       优点

1.       统一:只需一条assertThat语句即可替代旧有的其他语句(如assertEqualsassertNotSameassertFalseassertTrueassertNotNullassertNull等),使断言变得简单、代码风格统一,增强测试代码的可读性和可维护性。

2.       直观:assertThat不再像assertEquals那样,使用比较难懂的谓宾主语法模式(如:assertEquals(3, x);)。相反,assertThat使用了类似于主谓宾的易读语法模式(如:assertThat(x,is(3));),使得代码更加直观、易读,符合人类思维习惯。

3.       错误信息更具描述性

旧的断言语法如果断言失败,默认不会有额外的提示信息,如assertTrue(testedString.indexOf(”taobao”) > -1);如果该断言失败,只会抛出无用的错误信息,如java.lang.AssertionError:,除此之外不会有更多的提示信息。

新的断言语法会默认自动提供一些可读的描述信息,如

assertThat(testedString, containsString(”taobao”));

如果该断言失败,抛出的错误提示信息如下:

java.lang.AssertionError:

Expected: a string containing “taobao”

got: “taoba”

4.       Matcher匹配符联合使用更灵活强大

 

因空间字数限制,请察看junit断言介绍2


TAG: 接口测试

引用 删除 13991326524   /   2015-10-26 18:16:37
本人是菜鸟级别想要学习接口测试,可是看不懂啊
guchenggao的个人空间 引用 删除 guchenggao   /   2012-10-18 15:49:25
很显然您没有讲到点上,从查看的次数就可以看出。
还有我是越看越糊涂了
zita唷 学习哪 引用 删除 susan0605a   /   2011-12-30 19:39:19
我刚好马上要做接口测试,可惜都看不懂,现在完全迷惘了。。。不知道该怎么入手去准备
zita唷 学习哪 引用 删除 susan0605a   /   2011-12-30 19:38:38
5
德尔惠的个人空间 引用 删除 德尔惠   /   2011-12-14 10:39:18
5
xin_晴的个人空间 引用 删除 xin_晴   /   2011-12-13 11:11:04
您好,我是51Testing软件测试网的编辑,您的本篇博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/95/n-804295.html
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar