码迷,mamicode.com
首页 > 其他好文 > 详细

JUnit

时间:2014-09-18 23:34:54      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   java   ar   for   数据   

  1. 核心断言
    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() 让测试失败

  2. 核心注解:
    @Before 初始化方法,没个测试方法执行前都会执行
    @After 释放资源,每个测试方法执行后都会执行
    @Test 测试方法,在这里可以测试期望异常和超时时间
    @Ignore 忽略的测试方法
    @BeforeClass 针对所有测试,只执行一次,且必须为static void
    @AfterClass 针对所有测试,只执行一次,且必须为static void
    @RunWith 指定测试类使用某个运行器
    @Parameters 指定测试类的测试数据集合
    @Rule 允许灵活添加或重新定义测试类中的每个测试方法的行为
    @FixMethodOrder 指定测试方法的执行顺序

  3. 执行顺序:
    一个测试类单元测试的执行顺序为:
    @BeforeClass –> @Before –> @Test –> @After –> @AfterClass

    每一个测试方法的调用顺序为:
    @Before –> @Test –> @After
  4. 参数化测试就好比把一个输入值,期望值的集合传入测试方法,达到一次性测试的目的,步骤如下:
    • 为参数化测试类指定特殊的运行器org.junit.runners.Parameterized,指定运行器使用@RunWith,使用Parameterized运行器的语法为:
      @RunWith(Parameterized.class),即在Parameterized中运行测试
    • 为测试类声明多个变量,分别用于存放期望值和测试所用数据
    • 为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值
    • 为测试类声明一个使用org.junit.runners.Parameterized.Parameters修饰的,返回值为java.util.Collection的公共静态方法,并在此方法中初始化所有需要测试的参数对
    • 编写测试方法使用定义的变量作为参数进行测试
  5. 打包测试,就是一次性运行完包中所包含的所有测试类的执行,示例代码如下:
    @RunWith(Suite.class)  
    @Suite.SuiteClasses({ AssertTests.class, FibonacciTest.class, JDemoTest.class })  
    public class AllCaseTest {    
    }
    AllCaseTest即是打包测试类,它的内容是空,运行该类就会运行AssertTests,FabonaccitTest,JDemoTest的测试代码
  6. 异常测试:最常用写法如下,注意先写期望的异常,然后才进行函数调用
    @Rule  
    public ExpectedException thrown = ExpectedException.none();  
     
    @Test  
    public void shouldTestExceptionMessage() throws IndexOutOfBoundsException {  
        List<Object> list = new ArrayList<Object>();    
        thrown.expect(IndexOutOfBoundsException.class);  
        thrown.expectMessage("Index: 0, Size: 0");  
        list.get(0);  
        Assert.assertEquals(1, list.get(0));  
    }

JUnit

标签:style   blog   color   io   使用   java   ar   for   数据   

原文地址:http://www.cnblogs.com/phenixyu/p/3980199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!