首页 > 代码库 > java单元测试注释执行顺序
java单元测试注释执行顺序
JUnit4通过注解的方式来识别测试方法。目前支持的主要注解有:
@BeforeClass
全局只会执行一次,而且是第一个运行@Before
在测试方法运行之前运行@Test
测试方法@After
在测试方法运行之后允许@AfterClass
全局只会执行一次,而且是最后一个运行@Ignore
忽略此方法
下面举一个样例:
- import org.junit.After;
- import org.junit.AfterClass;
- import org.junit.Assert;
- import org.junit.Before;
- import org.junit.BeforeClass;
- import org.junit.Ignore;
- import org.junit.Test;
- public class Junit4TestCase {
- @BeforeClass
- public static void setUpBeforeClass() {
- System.out.println("Set up before class");
- }
- @Before
- public void setUp() throws Exception {
- System.out.println("Set up");
- }
- @Test
- public void testMathPow() {
- System.out.println("Test Math.pow");
- Assert.assertEquals(4.0, Math.pow(2.0, 2.0), 0.0);
- }
- @Test
- public void testMathMin() {
- System.out.println("Test Math.min");
- Assert.assertEquals(2.0, Math.min(2.0, 4.0), 0.0);
- }
- // 期望此方法抛出NullPointerException异常
- @Test(expected = NullPointerException.class)
- public void testException() {
- System.out.println("Test exception");
- Object obj = null;
- obj.toString();
- }
- // 忽略此测试方法
- @Ignore
- @Test
- public void testMathMax() {
- Assert.fail("没有实现");
- }
- // 使用“假设”来忽略测试方法
- @Test
- public void testAssume(){
- System.out.println("Test assume");
- // 当假设失败时,则会停止运行,但这并不会意味测试方法失败。
- Assume.assumeTrue(false);
- Assert.fail("没有实现");
- }
- @After
- public void tearDown() throws Exception {
- System.out.println("Tear down");
- }
- @AfterClass
- public static void tearDownAfterClass() {
- System.out.println("Tear down After class");
- }
- }
Junit3的package是junit.framework
,而Junit4是org.junit
。
执行此用例后,控制台会输出
写道
Set up before class
Set up
Test Math.pow
Tear down
Set up
Test Math.min
Tear down
Set up
Test exception
Tear down
Set up
Test assume
Tear down
Tear down After class
Set up
Test Math.pow
Tear down
Set up
Test Math.min
Tear down
Set up
Test exception
Tear down
Set up
Test assume
Tear down
Tear down After class
可以看到,执行次序是@BeforeClass
-> @Before
-> @Test
-> @After
-> @Before
-> @Test
-> @After
-> @AfterClass
。@Ignore
会被忽略。
java单元测试注释执行顺序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。