JUnit为我们提供了一些辅助函数,他们用来帮助我们确定被测试的方法是否按照预期的效果正常工作,通常,把这些辅助函数称为断言。下面我们来介绍一下JUnit的各种断言。

断言是编写测试用例的核心实现方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过。

断言核心方法

assertArrayEquals(expecteds, actuals) 查看两个数组是否相等。

assertEquals(expected, actual) 查看两个对象是否相等。类似于字符串比较使用的equals()方法

assertNotEquals(first, second) 查看两个对象是否不相等。

assertNull(object) 查看对象是否为空。

assertNotNull(object) 查看对象是否不为空。

assertSame(expected, actual) 查看两个对象的引用是否相等。类似于使用“==”比较两个对象

assertNotSame(unexpected, actual) 查看两个对象的引用是否不相等。类似于使用“!=”比较两个对象

assertTrue(condition) 查看运行结果是否为true。

assertFalse(condition) 查看运行结果是否为false。

assertThat(actual, matcher) 查看实际值是否满足指定的条件

fail() 让测试失败


注解

@Before 初始化方法

@After 释放资源

@Test 测试方法,在这里可以测试期望异常和超时时间

@Ignore 忽略的测试方法

@BeforeClass 针对所有测试,只执行一次,且必须为static void

@AfterClass 针对所有测试,只执行一次,且必须为static void

@RunWith 指定测试类使用某个运行器

@Parameters 指定测试类的测试数据集合

@Rule 允许灵活添加或重新定义测试类中的每个测试方法的行为

@FixMethodOrder 指定测试方法的执行顺序


一个测试类单元测试的执行顺序为:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一个测试方法的调用顺序为:

@Before –> @Test –> @After



   1、assertEquals
  函数原型1:assertEquals([String message],expected,actual)

参数说明:
  message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  expected是期望值,通常都是用户指定的内容。
  actual是被测试的代码返回的实际值。
例:assertEquals("equals","1","1");

  函数原型2:assertEquals([String message],expected,actual,tolerance)
参数说明:
  message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  expected是期望值,通常都是用户指定的内容。
  actual是被测试的代码返回的实际值。
  tolerance是误差参数,参加比较的两个浮点数在这个误差之内则会被认为是相等的。
  例:assertEquals ("yes",5.8,11.0/2.0,0.5);

  2、assertTrue
   函数原型:assertTrue ([String message],Boolean condition)
   参数说明:
    message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
     condition是待验证的布尔型值。
   该断言用来验证给定的布尔型值是否为真,假如结果为假,则验证失败。当然,更有验证为假的测试条件:

   函数原型:assertFalse([String message],Boolean condition)
      该断言用来验证给定的布尔型值是否为假,假如结果为真,则验证失败。
       例: assertTrue("true",1==1);
          assertFalse("false",2==1);

  3、assertNull
  函数原型:assertNull([String message],Object object)
参数说明:
   message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  object是待验证的对象。
  该断言用来验证给定的对象是否为null,假如不为null,则验证失败。相应地,还存在能够验证非null的断言:
  函数原型:assertNotNull([String message],Object object)
该断言用来验证给定的对象是否为非null,假如为null,则验证失败。
例:assertNull("null",null);
   assertNotNull("not null",new String());

  4、assertSame
  函数原型:assertSame ([String message], expected,actual)
参数说明:
  message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  expected是期望值。
  actual是被测试的代码返回的实际值。
  该断言用来验证expected参数和actual参数所引用的是否是同一个对象,假如不是,则验证失败。相应地,也存在验证不是同一个对象的断言:

  函数原型:assertNotSame ([String message], expected,actual)
该断言用来验证expected参数和actual参数所引用的是否是不同对象,假如所引用的对象相同,则验证失败。
例:assertSame("same",2,4-2);
   assertNotSame("not same",2,4-3);

  5、Fail
  函数原型:Fail([String message])
参数说明:
   message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  该断言会使测试立即失败,通常用在测试不能达到的分支上(如异常)。