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

junit4测试学习

时间:2015-08-06 20:39:02      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

JUnit 4 使用 Java 5 中的注解(annotation),以下是JUnit 4 常用的几个 annotation 介绍

@Before:初始化方法

@After:释放资源

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

@Ignore:忽略的测试方法

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

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

一个JUnit 4 的单元测试用例执行顺序为:

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

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

@Before –> @Test –> @After

写个例子测试一下,测试一下

import static org.junit.Assert.*; 

import org.junit.After;

import org.junit.AfterClass;

import org.junit.Before;

import org.junit.BeforeClass;

import org.junit.Ignore;

import org.junit.Test; 

public class JUnit4Test {

@Before

public void before() {

  System.out.println("@Before");

}

@Test

public void test() {

  System.out.println("@Test");

  assertEquals(5 + 5, 10);

}


@Ignore

@Test

public void testIgnore() {

  System.out.println("@Ignore");

}


@Test(timeout = 50)

public void testTimeout() {

  System.out.println("@Test(timeout = 50)");

  assertEquals(5 + 5, 10);

}


@Test(expected = ArithmeticException.class)

public void testExpected() {

  System.out.println("@Test(expected = Exception.class)");

  throw new ArithmeticException();

}


@After

public void after() {

   System.out.println("@After");

  }

  

  @BeforeClass

  public static void beforeClass() {

   System.out.println("@BeforeClass");

  };

  

  @AfterClass

  public static void afterClass() {

   System.out.println("@AfterClass");

  };

};

输出结果

@BeforeClass

@Before

@Test(timeout = 50)

@After

@Before

@Test(expected = Exception.class)

@After

@Before

@Test

@After

@AfterClass

 

@BeforeClass and @AfterClass                     @Before and @After

在一个类中只可以出现一次                                  在一个类中可以出现多次,即可以在多个方法的声明前加上这两个                                                                                          Annotaion标签,执行顺序不确定

方法名不做限制                                                   方法名不做限制

在类中只运行一次                                                在每个测试方法之前或者之后都会运行一次

@BeforeClass父类中标识了该Annotation的        @Before父类中标识了该Annotation的方法将会先于当前类中标识了该

方法将会先于当前类中标识了该Annotation的       Annotation的方法执行。

方法执行。

@AfterClass 父类中标识了该Annotation的          @After父类中标识了该Annotation的方法将会在当前类中标识了该

方法将会在当前类中标识了该Annotation的           Annotation的方法之后执行

方法之后执行

必须声明为public static                                        必须声明为public 并且非static

所有标识为@AfterClass的方法都一定会被执行      所有标识为@After 的方法都一定会被执行,即使在标识为

,即使在标识为@BeforeClass的方法抛出异常       @Before 或者 @Test 的方法抛出异常的的情况下也一样会。

的的情况下也一样会。 

 

@BeforeClass 和 @AfterClass 对于那些比较“昂贵”的资源的分配或者释放来说是很有效的,因为他们只会在类中被执行一次。相比之下对于那些需要在每次运行之前都要初始化或者在运行之后都需要被清理的资源来说使用@Before和@After同样是一个比较明智的选择。


junit4测试学习

标签:

原文地址:http://my.oschina.net/u/2300159/blog/488785

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