Usage and Idioms——Assertions

Java提供了断言方法,一般断言方法参数顺序为(期望值,实际值);assertThat和其他断言方法参数顺序是相反的,为(实际值,期望值),assertThat可以结合hamcrest 使用。

Junit的org.junit.Assert类提供了各种断言方法来写junit测试。这些方法被用来检查方法的真实结果值和期望值。基本的断言方法列表:

Junit 4 Assert Methods
MethodDescription
assertNull(java.lang.Object object) 检查对象是否为空;如果对象为null则通过测试,反之看作失败
assertNotNull(java.lang.Object object) 检查对象是否为空;如果对象不为null则通过测试,反之看作失败
assertEquals(long expected, long actual) 检查long类型的值是否相等;如果expected 和 actual不相等则失败,否则通过测试。
assertEquals(Object expected, Object actual) 根据equals()方法,如果expected 和 actual不相等则失败,否则通过测试。
assertEquals(int expected, int actual) 根据==操作符,如果expected 和 actual不相等则失败,否则通过测试
assertEquals(double expected, double actual, double delta) 检查指定精度的double值是否相等;如果expected 和 actual不相等则失败,否则通过测试。
assertFalse(boolean condition) 检查条件是否为假;如果condition为true则失败;否则通过测试
assertTrue(boolean condition) 检查条件是否为真;如果condition为False则失败;否则通过测试
assertSame(java.lang.Object expected, java.lang.Object actual) 检查两个对象引用是否引用同一对象(即对象是否相等);如果expected 和 actual引用不同的内存对象则失败;如果它们引用相同的内存对象则通过测试。两个对象可能并不是相同的,但是它们可能通过equals()方法仍然可以是相等的。
assertNotSame(java.lang.Object unexpected, java.lang.Object actual)

检查两个对象引用是否不引用统一对象(即对象是否不相等);如果expected 和 actual引用相同的内存对象则失败;如果它们引用不同的内存对象则通过测试。

AssertionsTest.Java junit测试用例,显示各种断言方法:

  1. import static org.junit.Assert.*;  
  2.    
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.    
  6. import org.junit.Test;  
  7.    
  8. /** 
  9. * @author javatutorials.co.in 
  10. */  
  11. public class AssertionsTest {  
  12.    
  13.     @Test  
  14.     public void testAssertNull() {  
  15.         String str = null;  
  16.         assertNull(str);  
  17.     }  
  18.    
  19.     @Test  
  20.     public void testAssertNotNull() {  
  21.         String str = "hello Java!!";  
  22.         assertNotNull(str);  
  23.     }  
  24.    
  25.     @Test  
  26.     public void testAssertEqualsLong() {  
  27.         long long1 = 2;  
  28.         long long2 = 2;  
  29.         assertEquals(long1, long2);  
  30.     }  
  31.    
  32.     @Test  
  33.     public void testAssertEqualsDouble() {  
  34.         // test case is successfull as double1 and double 2  
  35.         // differ by 0.001 which is less than our specified delta  
  36.         double double1 = 1.236;  
  37.         double double2 = 1.237;  
  38.         double delta = 0.002;  
  39.         assertEquals(double1, double2, delta);  
  40.     }  
  41.    
  42.     @Test  
  43.     public void testAssertTrue() {  
  44.         List<String> list = new ArrayList<String>();  
  45.         assertTrue(list.isEmpty());  
  46.     }  
  47.    
  48.     @Test  
  49.     public void testAssertFalse() {  
  50.         List<String> list = new ArrayList<String>();  
  51.         list.add("hello");  
  52.         assertFalse(list.isEmpty());  
  53.     }  
  54.    
  55.     @Test  
  56.     public void testAssertSame() {  
  57.         String str1 = "hello world!!";  
  58.         String str2 = "hello world!!";  
  59.         assertSame(str2, str1);  
  60.     }  
  61.    
  62.     @Test  
  63.     public void testAssertNotSame() {  
  64.         String str1 = "hello world!!";  
  65.         String str3 = "hello Java!!";  
  66.         assertNotSame(str1, str3);  
  67.     }  
  68. }
原文地址:https://www.cnblogs.com/insist8089/p/6383498.html