小白学junit4(2)——断言Assert

上一篇 / 下一篇  2013-01-07 11:01:36 / 个人分类:junit

assert:断言,声称
 从我的理解来说,断言便是我知道了预期结果,我断定,这个地方一定会是这样,用这个方法来判断,我的观点是正确的,不是正确的,那么你就停止操作。
常见的断言特性
  前置条件断言:代码执行之前必须具备的特性
  后置条件断言:代码执行之后必须具备的特性
  前后不变断言:代码执行前后不能变化的特性
 
 Java断言是在J2SE1.4中引入的新特性。在1.4中添加了assert关键字和java.lang.AssertError类的支持。
 同样JUnit 4中一个测试类并不继承自TestCase(在JUnit 3.8中,这个类中定义了assertEquals()方法),所以你必须使用前缀语法(举例来说,Assert.assertEquals())或者 (由于JDK5.0)静态地导入Assert类。这样以来,你就可以完全象以前一样使用assertEquals方法(举例来说, assertEquals())。

Junit 4 常用断言
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方法;

TAG:

 

评分:0

我来说两句

Open Toolbar