junit assert断言解析

junit源码
↑↑↑↑↑↑↑↑↑↑点我点我

引入包,以下两种方式都是OK的,看个人喜好,我倾向于使用第二种,会更加清晰直观。下面的代码我都会用第二种

1
2
import static org.junit.Assert.*;
import org.junit.Assert;

Assert是断言的意思,我更喜欢理解为”猜测”,比断言要顺口和通俗。如果猜测错误,则抛出java.lang.AssertionError异常

    • Assert.fail()
      1
      让测试直接出错,抛出 AssertionError 。
    • Assert.fail(String message)
      1
      让测试直接出错,并在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertNull(Object object)
      1
      猜测 object 为 null,如果不为 null ,抛出 AssertionError 。
    • Assert.assertNull(String message, Object object)
      1
      2
      猜测 object 为 null。
      如果不为 null ,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertNotNull(Object object)
      1
      猜测 object 不为 null,如果为 null ,抛出 AssertionError 。
    • Assert.assertNotNull(String message, Object object)
      1
      2
      猜测 object 不为 null。
      如果为 null ,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertSame(Object expected, Object actual)
      1
      2
      猜测 expected 对象和 actual 对象引用的是同一个对象。
      如果不同,抛出 AssertionError 。
    • Assert.assertSame(String message, Object expected, Object actual)
      1
      2
      猜测 expected 对象和 actual 对象引用的是同一个对象。
      如果不同,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertNotSame(Object expected, Object actual)
      1
      2
      猜测 expected 对象和 actual 对象引用不同的对象。
      如果相同,抛出 AssertionError 。
    • Assert.assertNotSame(String message, Object expected, Object actual)
      1
      2
      猜测 expected 对象和 actual 对象引用不同的对象。
      如果相同,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertTrue(boolean condition)
      1
      2
      猜测 condition 为 true 。
      如果为 false ,抛出 AssertionError 。
    • Assert.assertTrue(String message, boolean condition)
      1
      2
      猜测 condiiton 为 true 。
      如果为 false , 在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertFalse(boolean condition)
      1
      2
      猜测 condition 为 false 。
      如果为 true , 抛出 AssertionError 。
    • Assert.assertFalse(String message, boolean condition)
      1
      2
      猜测 condiiton 为 false 。
      如果为 true , 在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertEquals(long expected, long actual)
      1
      2
      猜测两个 long 类型 expected 和 actual 的值相等。
      如果不相等,抛出 AssertionError 。
    • Assert.assertEquals(String message, long expected, long actual)
      1
      2
      猜测两个 long 类型 expected 和 actual 的值相等。
      如果不相等,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertNotEquals(long unexpected, long actual)
      1
      2
      猜测两个 long 类型 unexpected 和 actual 的值不相等。
      如果相等,抛出 AssertionError 。
    • Assert.assertNotEquals(String message, long unexpected, long actual)
      1
      2
      猜测两个 long 类型 expected 和 actual 的值不相等。
      如果相等,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertEquals(Object expected, Object actual)
      1
      2
      猜测两个对象相等。
      如果不相等,抛出 AssertionError 。
    • Assert.assertEquals(String message, Object expected, Object actual)
      1
      2
      猜测两个对象相等。
      如果不相等,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertNotEquals(Object unexpected, Object actual)
      1
      2
      猜测两个对象不相等。
      如果相等,抛出 AssertionError 。
    • Assert.assertNotEquals(String message, Object unexpected, Object actual)
      1
      2
      猜测两个对象不相等。
      如果相等,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertEquals(float expected, float actual, float delta)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      猜测两个 float 类型 expect 和 actual 在 delta 偏差值下相等
      如果不相等,抛出 AssertionError 。
      //例1
      Assert.assertEquals(1.1, 1.3, 0.2) //Pass
      //例2
      Assert.assertEquals(1.3, 1.1, 0.2) //Pass
      //例3
      Assert.assertEquals(1.1, 1.3, 0.1) //AssertionError
      //例4
      Assert.assertEquals(1.3, 1.1, 0.1) //AssertionError
    • Assert.assertEquals(String message, float expected, float actual, float delta)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      猜测两个 float 类型 expect 和 actual 在 delta 偏差值下相等
      如果不相等,在抛出 AssertionError 时输出 message 作为错误提示信息。
      //例1
      Assert.assertEquals("Not equal !",1.1, 1.3, 0.2) //Pass
      //例2
      Assert.assertEquals("Not equal !",1.3, 1.1, 0.2) //Pass
      //例3
      Assert.assertEquals("Not equal !",1.1, 1.3, 0.1) //AssertionError : Not equal !
      //例4
      Assert.assertEquals("Not equal !",1.3, 1.1, 0.1) //AssertionError : Not equal !
    • Assert.assertNotEquals(float unexpected, float actual, float delta)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      猜测两个 float 类型 unexpected 和 actual 在 delta 偏差值下不相等
      如果相等,抛出 AssertionError 。
      //例1
      Assert.assertNotEquals(1.1, 1.3, 0.1) //Pass
      //例2
      Assert.assertNotEquals(1.3, 1.1, 0.1) //Pass
      //例3
      Assert.assertNotEquals(1.1, 1.3, 0.2) //AssertionError
      //例4
      Assert.assertNotEquals(1.3, 1.1, 0.2) //AssertionError
    • Assert.assertNotEquals(String message, float unexpected, float actual, float delta)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      猜测两个 float 类型 expect 和 actual 在 delta 偏差值下不相等
      如果相等,在抛出 AssertionError 时输出 message 作为错误提示信息。
      //例1
      Assert.assertNotEquals("Equal !",1.1, 1.3, 0.1) //Pass
      //例2
      Assert.assertNotEquals("Equal !",1.3, 1.1, 0.1) //Pass
      //例3
      Assert.assertNotEquals("Equal !",1.1, 1.3, 0.2) //AssertionError : Equal !
      //例4
      Assert.assertNotEquals("Equal !",1.3, 1.1, 0.2) //AssertionError : Equal !
    • Assert.assertEquals(long expected, long actual, long delta)
      1
      2
      猜测两个 long 类型 expected 和 actual 在 delta 偏差值下相等
      如果不相等,抛出 AssertionError 。
    • Assert.assertEquals(String message, long expected, long actual, long delta)
      1
      2
      猜测两个 long 类型 expect 和 actual 在 delta 偏差值下相等
      如果不相等,在抛出 AssertionError 时输出 message 作为错误提示信息。
    • Assert.assertNotEquals(long unexpected, long actual, long delta)
      1
      2
      猜测两个 long 类型 unexpected 和 actual 在 delta 偏差值下不相等
      如果相等,抛出 AssertionError 。
    • Assert.assertNotEquals(String message, long unexpected, long actual, long delta)
      1
      2
      猜测两个 long 类型 expect 和 actual 在 delta 偏差值下不相等
      如果相等,在抛出 AssertionError 时输出 message 作为错误提示信息。
  1. 31~37 - Assert.assertArrayEquals(T[] expected, T[] actual)

    1
    2
    3
    4
    猜测两个相同类型的数组的元素一一对应相等。
    如果不相等,抛出 AssertionError 。

    T 支持的类型有 int、byte、char、long、short、boolean、Object
  2. 38~44 - Assert.assertArrayEquals(String message, T[] expected, T[] actual)

    1
    2
    3
    4
    猜测两个相同类型的数组的元素一一对应相等。
    如果不相等,在抛出 AssertionError 时输出 message 作为错误提示信息。

    T 支持的类型有 int、byte、char、long、short、boolean、Object
  3. 44~45 - Assert.assertArrayEquals(T[] expected, T[] actual, T delta)

    1
    2
    3
    4
    猜测两个相同类型的数组的元素,在 delte 偏差值下一一对应相等。
    如果不相等,抛出 AssertionError 。

    T 支持的类型有 float、double
  4. 46~47 - Assert.assertArrayEquals(String message, T[] expected, T[] actual, T delta)

    1
    2
    3
    4
    猜测两个相同类型的数组的元素,在 delte 偏差值下一一对应相等。
    如果不相等,在抛出 AssertionError 时输出 message 作为错误提示信息。

    T 支持的类型有 float、double
  5. 48 - Assert.assertThat(T actual, Matcher<? super T> matcher)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    猜测 actual 的值符合规则 matcher。
    如果不符合,抛出 AssertionError 。

    //例1
    Assert.assertThat(1, is(1)); //Pass
    //例2
    Assert.assertThat(1, greaterThan(0)); //Pass
    //例3
    Assert.assertThat(1, is(0)); //AssertionError
    //例4
    Assert.assertThat(1, greaterThan(1)); //AssertionError
    注:Matcher 十分灵活,需要引入包import static org.hamcrest.Matchers.*;,更多使用可参考文档: org.hamcrest.Matchers
  6. 49 - Assert.assertThat(String reason, T actual, Matcher<? super T> matcher)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    猜测 actual 的值符合规则 matcher。
    如果不符合,在抛出 AssertionError 时输出 reason 作为错误提示信息。

    //例1
    Assert.assertThat("not match reason: ...", 1, is(1)); //Pass
    //例2
    Assert.assertThat("not match reason: ...",1, greaterThan(0)); //Pass
    //例3
    Assert.assertThat("not match reason: ...",1, is(0)); //AssertionError : not match reason : ...
    //例4
    Assert.assertThat("not match reason: ...",1, greaterThan(1)); //AssertionError : not match reason : ...