zoukankan      html  css  js  c++  java
  • Assertions

    JUnit提供了许多重载的断言方法,这些方法均可以通过"import static org.junit.Assert.*"导入。方法的参数顺序一般都是([失败时打印的字符串消息],期望值,实际值)。

    特别要提到的一种断言是assertThat,它的参数是([失败时打印的字符串消息],实际值,Matcher对象),参数顺序和其他的断言方法正好相反。同时由于生成Matcher对象需要用到”org.hamcrest.CoreMatchers.*"里面的方法,所以使用assertThat的时候需要额外导入hamcrest-core.jar和hamcrest-library.jar (下载地址:http://search.maven.org/#search|ga|1|g%3Aorg.hamcrest)。关于AssertThat的详细介绍参见 ”Matchers and assertthat"。

    Hamcrest是什么呢?它的官网是这样说的:amcrest is a library of matchers, which can be combined in to create flexible expressions of intent in tests。按我的理解就是Hamcrest是一个Library,它提供了一套匹配符Matcher,这些匹配符可读性高而且灵活,所以JUnit4引入了Hamcrest框架。

    Hamcrest官网:http://hamcrest.org/

    Hamcrest主页:http://code.google.com/p/hamcrest/wiki/Tutorial

    Hamcrest整个包在GitHub的下载地址:https://github.com/hamcrest/JavaHamcrest


    Method Summary
    static void assertArrayEquals(boolean[] expecteds, boolean[] actuals)
              Asserts that two boolean arrays are equal.
    static void assertArrayEquals(byte[] expecteds, byte[] actuals)
              Asserts that two byte arrays are equal.
    static void assertArrayEquals(char[] expecteds, char[] actuals)
              Asserts that two char arrays are equal.
    static void assertArrayEquals(double[] expecteds, double[] actuals, double delta)
              Asserts that two double arrays are equal.
    static void assertArrayEquals(float[] expecteds, float[] actuals, float delta)
              Asserts that two float arrays are equal.
    static void assertArrayEquals(int[] expecteds, int[] actuals)
              Asserts that two int arrays are equal.
    static void assertArrayEquals(long[] expecteds, long[] actuals)
              Asserts that two long arrays are equal.
    static void assertArrayEquals(Object[] expecteds,Object[] actuals)
              Asserts that two object arrays are equal.
    static void assertArrayEquals(short[] expecteds, short[] actuals)
              Asserts that two short arrays are equal.
    static void assertArrayEquals(String message, boolean[] expecteds, boolean[] actuals)
              Asserts that two boolean arrays are equal.
    static void assertArrayEquals(String message, byte[] expecteds, byte[] actuals)
              Asserts that two byte arrays are equal.
    static void assertArrayEquals(String message, char[] expecteds, char[] actuals)
              Asserts that two char arrays are equal.
    static void assertArrayEquals(String message, double[] expecteds, double[] actuals, double delta)
              Asserts that two double arrays are equal.
    static void assertArrayEquals(String message, float[] expecteds, float[] actuals, float delta)
              Asserts that two float arrays are equal.
    static void assertArrayEquals(String message, int[] expecteds, int[] actuals)
              Asserts that two int arrays are equal.
    static void assertArrayEquals(String message, long[] expecteds, long[] actuals)
              Asserts that two long arrays are equal.
    static void assertArrayEquals(String message,Object[] expecteds,Object[] actuals)
              Asserts that two object arrays are equal.
    static void assertArrayEquals(String message, short[] expecteds, short[] actuals)
              Asserts that two short arrays are equal.
    static void assertEquals(double expected, double actual)
              Deprecated. Use assertEquals(double expected, double actual, double delta) instead
    static void assertEquals(double expected, double actual, double delta)
              Asserts that two doubles are equal to within a positive delta.
    static void assertEquals(float expected, float actual, float delta)
              Asserts that two floats are equal to within a positive delta.
    static void assertEquals(long expected, long actual)
              Asserts that two longs are equal.
    static void assertEquals(Object[] expecteds,Object[] actuals)
              Deprecated. use assertArrayEquals
    static void assertEquals(Object expected,Object actual)
              Asserts that two objects are equal.
    static void assertEquals(String message, double expected, double actual)
              Deprecated. Use assertEquals(String message, double expected, double actual, double delta) instead
    static void assertEquals(String message, double expected, double actual, double delta)
              Asserts that two doubles are equal to within a positive delta.
    static void assertEquals(String message, float expected, float actual, float delta)
              Asserts that two floats are equal to within a positive delta.
    static void assertEquals(String message, long expected, long actual)
              Asserts that two longs are equal.
    static void assertEquals(String message,Object[] expecteds,Object[] actuals)
              Deprecated. use assertArrayEquals
    static void assertEquals(String message,Object expected,Object actual)
              Asserts that two objects are equal.
    static void assertFalse(boolean condition)
              Asserts that a condition is false.
    static void assertFalse(String message, boolean condition)
              Asserts that a condition is false.
    static void assertNotEquals(double unexpected, double actual, double delta)
              Asserts that two doubles are not equal to within a positive delta.
    static void assertNotEquals(float unexpected, float actual, float delta)
              Asserts that two floats are not equal to within a positive delta.
    static void assertNotEquals(long unexpected, long actual)
              Asserts that two longs are not equals.
    static void assertNotEquals(Object unexpected,Object actual)
              Asserts that two objects are not equals.
    static void assertNotEquals(String message, double unexpected, double actual, double delta)
              Asserts that two doubles are not equal to within a positive delta.
    static void assertNotEquals(String message, float unexpected, float actual, float delta)
              Asserts that two floats are not equal to within a positive delta.
    static void assertNotEquals(String message, long unexpected, long actual)
              Asserts that two longs are not equals.
    static void assertNotEquals(String message,Object unexpected,Object actual)
              Asserts that two objects are not equals.
    static void assertNotNull(Object object)
              Asserts that an object isn't null.
    static void assertNotNull(String message,Object object)
              Asserts that an object isn't null.
    static void assertNotSame(Object unexpected,Object actual)
              Asserts that two objects do not refer to the same object.
    static void assertNotSame(String message,Object unexpected,Object actual)
              Asserts that two objects do not refer to the same object.
    static void assertNull(Object object)
              Asserts that an object is null.
    static void assertNull(String message,Object object)
              Asserts that an object is null.
    static void assertSame(Object expected,Object actual)
              Asserts that two objects refer to the same object.
    static void assertSame(String message,Object expected,Object actual)
              Asserts that two objects refer to the same object.
    static
    <T> void
    assertThat(String reason, T actual, Matcher<? super T> matcher)
              Asserts that actual satisfies the condition specified by matcher.
    static
    <T> void
    assertThat(T actual,Matcher<? super T> matcher)
              Asserts that actual satisfies the condition specified by matcher.
    static void assertTrue(boolean condition)
              Asserts that a condition is true.
    static void assertTrue(String message, boolean condition)
              Asserts that a condition is true.
    static void fail()
              Fails a test with no message.
    static void fail(String message)

    官网的断言示例如下:

    import static org.junit.Assert.*;  
    import static org.hamcrest.CoreMatchers.*;  
      
    import java.util.Arrays;  
    import org.hamcrest.core.CombinableMatcher;  
    import org.junit.Test;  
      
      
    public class AssertTests {  
          
        @Test  
        public void testAssertArrayEquals(){  
            byte[] expected="trial".getBytes();  
            byte[] actual="trial".getBytes();  
            assertArrayEquals("failure-byte arrays not same",expected, actual);  
        }  
          
        @Test  
        public void testAssertEquals(){  
            assertEquals("failure-strings are not equal","test","test");  
        }  
          
        @Test  
        public void testAssertFalse(){  
            assertFalse("failure-should be false",false);  
        }  
          
        @Test  
        public void testAssertNotNull(){  
            assertNotNull("should not be null",new Object());  
        }  
          
        @Test  
        public void testAssertNotSame(){  
            assertNotSame("should not be same object",new Object(),new String("hello"));  
        }  
      
        @Test  
        public void testAssertNull(){  
            assertNull("should be null",null);  
        }  
          
        @Test  
        public void testAssertSame(){  
            Integer aNumber=Integer.valueOf(78);  
            assertSame("should be the same",aNumber,aNumber);  
        }  
          
          // JUnit Matchers assertThat  
          @Test  
          public void testAssertThatBothContainsString() {  
            org.junit.Assert.assertThat("albumen", both(containsString("a")).and(containsString("b")));  
          }  
      
          @Test  
          public void testAssertThathasItemsContainsString() {  
            org.junit.Assert.assertThat(Arrays.asList("one", "two", "three"), hasItems("one", "three"));  
          }  
      
          @Test  
          public void testAssertThatEveryItemContainsString() {  
            org.junit.Assert.assertThat(Arrays.asList(new String[] { "fun", "ban", "net" }), everyItem(containsString("n")));  
          }  
      
          // Core Hamcrest Matchers with assertThat  
          @Test  
          public void testAssertThatHamcrestCoreMatchers() {  
            assertThat("good", allOf(equalTo("good"), startsWith("good")));  
            assertThat("good", not(allOf(equalTo("bad"), equalTo("good"))));  
            assertThat("good", anyOf(equalTo("bad"), equalTo("good")));  
            assertThat(7, not(CombinableMatcher.<Integer> either(equalTo(3)).or(equalTo(4))));  
            assertThat(new Object(), not(sameInstance(new Object())));  
          }  
      
          @Test  
          public void testAssertTrue() {  
            assertTrue("failure - should be true", true);  
          }   
    }  
  • 相关阅读:
    今天是清明节假期的最后一天
    昨天晚上在舅舅家吃饭,得知已经做完肾结石手术
    在今天上午第三节课上完后,下课找了韩请假的事情
    早上把书本和桌子放在一起,下午12:00就要出发
    今天居然在谎称支付宝又返现2元
    今天居然在谎称支付宝又返现2元
    Spring IOP 没用
    面试题:搜狐百度 看1 复杂一点的面试题 笔试题
    项目一:第六天 WebService写接口 和CXF框架
    项目一:第七天 CRM 和bos系统实现定区关联客户,关联快递员. 通过CXF框架实现
  • 原文地址:https://www.cnblogs.com/miniren/p/4638520.html
Copyright © 2011-2022 走看看