• 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. }
  • 相关阅读:
    扩展欧几里得
    Android中进行流量统计
    经常使用的DB2命令(2)
    构建下一代服务载体,智能设备这座宝藏该怎么挖?
    Oracle 11g新特性虚拟列分区
    Convert Sorted List to Binary Search Tree
    c#高效的线程安全队列ConcurrentQueue<T>(上)
    String、StringBuffer与StringBuilder之间区别
    C# 中的委托和事件
    利用C#自带组件强壮程序日志
  • 原文地址:https://www.cnblogs.com/insist8089/p/6383498.html
Copyright © 2020-2023  润新知