`
张洪财
  • 浏览: 275892 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

junit 4 中的Before After Ignore Test BeforeClass AfterClass

    博客分类:
  • java
阅读更多

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的方法将会先于当前类中标识了该Annotation的方法执行。
@AfterClass 父类中标识了该Annotation的方法将会在当前类中标识了该Annotation的方法之后执行

@Before父类中标识了该Annotation的方法将会先于当前类中标识了该Annotation的方法执行。
 @After父类中标识了该Annotation的方法将会在当前类中标识了该Annotation的方法之后执行
必须声明为public static 必须声明为public 并且非static
所有标识为@AfterClass的方法都一定会被执行,即使在标识为@BeforeClass的方法抛出异常的的情况下也一样会。 所有标识为@After 的方法都一定会被执行,即使在标识为 @Before 或者 @Test 的方法抛出异常的的情况下也一样会。

 

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

分享到:
评论
1 楼 JonyUabka 2011-08-11  
实用价值很大。感谢分享。

相关推荐

    junit common test case just for my test

    测试类通常扩展自 JUnit 的 `TestCase` 类,或者使用注解 `@RunWith(JUnit4.class)` 来标记,以便于 JUnit 识别并执行其中的测试方法。测试方法是包含具体测试逻辑的方法,它们通常以 `test` 开头,并使用 `@Test` ...

    Junit4 Test 单元测试

    总结来说,Junit4 Test 单元测试是 Java 开发中的关键实践,它提供了结构化和自动化的方式来验证代码的正确性,确保软件的质量。掌握 JUnit4 的使用和测试技巧,对于编写健壮、可靠的代码至关重要。通过学习和应用...

    junit4 jar完整包

    在JUnit4中,我们可以使用断言(Assertion)来验证代码的结果是否符合预期。例如,`assertEquals(expected, actual)`用于检查两个对象是否相等,`assertTrue(condition)`和`assertFalse(condition)`判断一个布尔条件...

    Junit4简单实用

    与 JUnit 3 中的约定(测试方法需以 "test" 开头)相比,这种方式更加灵活,且更符合面向对象编程的原则。 在 JUnit 4 中,除了基本的断言方法,如 `assertEquals`,还有其他的一些断言方法,例如 `assertTrue`,`...

    junit4测试jar包

    1. **注解(Annotations)**:JUnit4通过注解来标识测试方法,例如`@Test`用于标记测试方法,`@Before`和`@After`分别用于定义在每个测试方法之前和之后执行的代码。此外,还有`@BeforeClass`和`@AfterClass`,它们...

    JUnit4基础文档

    JUnit4基础文档 单元测试是软件测试的一种,旨在检验软件的正确性和可靠性。JUnit是一个流行的单元测试框架,广泛应用于Java开发中。本文档介绍了JUnit4的基础知识,包括单元测试的概念、JUnit4的HelloWorld示例、...

    学习JUnit4过程中的总结

    这篇博客“学习JUnit4过程中的总结”可能是作者在深入研究JUnit4后的一些心得体验和技巧分享。下面我们将深入探讨JUnit4的核心特性、如何使用以及它在软件开发中的重要性。 首先,JUnit4引入了注解(Annotation)的...

    Junit4的解释文档javadoc下载

    JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了强大的工具来编写和运行可重复的、可靠的测试代码。JUnit4的解释文档,通常以JavaDoc的形式提供,包含了详细的API说明和使用示例,是学习和...

    Junit4教程

    JUnit4中的Annotation 在JUnit4中,我们可以使用多种Annotation来描述测试用例。例如: * @Before:使用了该Annotation的方法在每个测试方法执行之前都要执行一次。 * @After:使用了该Annotation的方法在每个测试...

    JUnit 4测试驱动开发----junit技术讲解

    在JUnit 4中,每个@Test注解的方法就是一个单元测试,每个测试方法应该独立于其他方法运行,避免了方法间的影响。 3. 更高级的JUnit 4特性 除了基本的断言和@Test注解外,JUnit 4还提供了许多高级特性,如: - `@...

    JunitTest

    JUnit还提供了各种注解来扩展测试功能,如`@Before`和`@After`用于在每个测试方法执行前和执行后执行特定的代码,`@BeforeClass`和`@AfterClass`则是在整个测试类执行前后的代码。`@Ignore`可以暂时跳过某个测试,`@...

    junit 4测试框架培训资料

    - 注解支持:JUnit 4利用Java 5的注解功能,如`@Test`用于标记测试方法,`@Before`和`@After`用于设置测试前后的准备工作(Fixture)。 - 参数化测试:允许用不同参数运行同一个测试方法,提高测试覆盖率。 - 钩子...

    junit4API.chm.html

    2. **异常断言**:`assertThat()`方法是JUnit4中的核心断言方法,可以配合各种Matcher进行复杂的断言,例如`assertThat(result, is(expected))`检查结果是否等于预期值。`assertTrue()`, `assertFalse()`, `...

    Junit4 jar包

    1. **注解驱动**:Junit4的核心在于其注解机制,如`@Test`用于标记测试方法,`@Before`和`@After`分别表示在每个测试方法前后的设置和清理操作,`@BeforeClass`和`@AfterClass`则在类级别的初始化和清理。...

    JUnit4,Test.7z

    在JUnit4中,测试类通常继承自`org.junit.runner.RunWith`接口,这允许使用不同的测试运行器,如`org.junit.JUnitCore`。测试方法可以使用各种断言(Assertions)来验证代码的预期行为,如`assertEquals`、`...

    JUnit4使用.pdf

    JUnit4 提供了一系列的注解,如 `@Test`、`@Before`、`@After` 等,极大地简化了测试代码的编写过程。此外,JUnit4 还引入了参数化的测试方法和假设条件支持,增强了测试的灵活性和表达能力。 #### 三、JUnit4的...

    Junit4使用教程详解+源码下载.rar

    二、注解在JUnit4中的应用 1. `@Test`: 这个注解标记一个方法为测试方法,JUnit会自动运行这个方法来执行测试。 2. `@Before`: 在每个测试方法之前运行的方法,通常用于初始化测试环境。 3. `@After`: 在每个测试...

    最新junit4,完整压缩文件,支持注解

    1. `@Test`: 这是JUnit4中最重要的注解,标记在方法上表示这是一个测试方法。当运行测试类时,带有@Test的任何方法都会被执行。你可以在这个注解上添加`expected`属性来指定预期的异常,或者`timeout`属性来限制方法...

Global site tag (gtag.js) - Google Analytics