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

发表于:2011-12-13 10:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小刀    来源:51Testing软件测试博客

  一、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是否等于actual(expect和actual是原始类型数值(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)测试unexpected和actual是否没有都引用同一个对象。
String storeId1 = storeId;
assertNotSame(storeId, storeId1);//运行失败
// assertSame(unexpected, actual)测试unexpected和actual是否没有都引用同一个对象。
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语句即可替代旧有的其他语句(如assertEquals,assertNotSame,assertFalse,assertTrue,assertNotNull,assertNull等),使断言变得简单、代码风格统一,增强测试代码的可读性和可维护性。

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

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号