2.1 断言概述
断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断高而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更稳定、品质更好且 不易于出错的代码。当需要在一个值为FALSE时中断当前操作的话,可以使用断言,单元测试必须使用断言(Junit/JunitX)
2.1 断言方法
这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的一些有用的方法列式如下:
Method | Description |
assertNull(ijava.lang.Object object) | 检查对象是否为空 |
assertNotNull(java.lang.Object object) | 检查对象是否不为空 |
assertEquals(long expected, long actual) | 检查long类型的值是否相等 |
assertEquals(double expected, double actual, double delta) | 检查指定精度的double值是否相等 |
assertFalse(boolean condition) | 检查条件是否为假 |
assertTrue(boolean condition) | 检查条件是否为真 |
assertSame(java.ang.Object expected, java.lang.Object actual) | 检查两个对象引用是否引用同一对象(即对象是否相等) |
assertNotSame(java.ang,Object unexpected, java.ang.Object actual) | 检查两个对象引用是否不引用同一对象(即对象不等) |
2.3 测试代码
public class AssertTest {
@Test
public void testAssertions(){
/**
* str1 和str2 是否是同一个对象【地址是否相等】:false
* *strl 和str2 内容是否等:true
*/
String str1 = new String("abc");
String str2=new String("abc");
/**
*str4 和str5 是否是同一个对象【地址是否相等】:true
*str4 和str5 内容是含相等:true
**/
String str3=null;
String str4 = "abc";
String str5 = "abc";
int val1 = 5;
int val2 = 6;
String[] expectedArray ={"one","two", "three"};
String[] resultArray = {"one","two","three"};
//Check that two objects are equal
assertEquals(str1,str2);
//check that a condition is true
assertTrue(val1 < val2);
//check that a condition is false
assertFalse(val1 > val2);
//Check that an object isn't null
assertNotNull(str1);
//check that an object is null
assertNull(str3);
//Check if two object references point to the same object
assertSame(str4,str5);
//Check if two object references not point to the same object
assertNotSame(str1,str3);
//Check whether two arrays are equal to each other.
assertArrayEquals(expectedArray,resultArray);
}
}