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同样是一个比较明智的选择。
分享到:
相关推荐
在 JUnit 3 中,这些功能是通过 `setUp` 和 `tearDown` 方法实现的,但在 JUnit 4 中,它们被 `@Before` 和 `@After` 注解替代,使得代码更清晰,目的性更强。 @Test:这个元数据是 JUnit 4 的核心,它用于标记测试...
在 JUnit4 中,测试类通常会继承自 `org.junit.Test` 类,然后在类中定义一系列带有 `@Test` 注解的方法,这些方法即为测试用例。每个测试用例应尽可能地独立于其他用例,确保它们的执行顺序不会影响测试结果。例如...
例如,`@Test`注解用于标记测试方法,`@Before`和`@After`则分别用于定义在每个测试方法之前和之后执行的代码。此外,`@BeforeClass`和`@AfterClass`则是在整个测试类开始前和结束后执行的方法,适用于初始化和清理...
1. **注解(Annotations)**:JUnit4通过注解来标识测试方法,例如`@Test`用于标记测试方法,`@Before`和`@After`分别用于定义在每个测试方法之前和之后执行的代码。此外,还有`@BeforeClass`和`@AfterClass`,它们...
JUnit 还提供了注解来控制测试执行的特性,比如 `@Ignore` 可以忽略某个测试,`@Test(timeout = ...)` 可以设置测试方法的超时时间。更高级的特性如参数化测试(`@Parameterized`)允许用不同的参数多次执行同一测试...
JUnit4基础文档 单元测试是软件测试的一种,旨在检验软件的正确性和可靠性。JUnit是一个流行的单元测试框架,广泛应用于Java开发中。本文档介绍了JUnit4的基础知识,包括单元测试的概念、JUnit4的HelloWorld示例、...
Junit4教程 Junit4是JUnit框架有史以来的最大改进,其中的主要目标便是利用Java5的...在Eclipse中使用JUnit4也非常方便,我们可以使用JUnit4的Annotation来描述测试方法,并使用Eclipse的JUnit插件来运行测试。
JUnit还提供了各种注解来扩展测试功能,如`@Before`和`@After`用于在每个测试方法执行前和执行后执行特定的代码,`@BeforeClass`和`@AfterClass`则是在整个测试类执行前后的代码。`@Ignore`可以暂时跳过某个测试,`@...
1. **注解驱动**:Junit4的核心在于其注解机制,如`@Test`用于标记测试方法,`@Before`和`@After`分别表示在每个测试方法前后的设置和清理操作,`@BeforeClass`和`@AfterClass`则在类级别的初始化和清理。...
如`@Test`用于标记测试方法,`@Before`和`@After`分别在每个测试方法前和后执行,`@BeforeClass`和`@AfterClass`则在类的生命周期内只执行一次。 2. **异常断言**:`assertThat()`方法是JUnit4中的核心断言方法,...
junit.framework.JUnit4TestAdapter.class junit.framework.JUnit4TestAdapterCache.class junit.framework.JUnit4TestCaseFacade.class junit.framework.Protectable.class junit.framework.Test.class junit....
在JUnit 4中,每个@Test注解的方法就是一个单元测试,每个测试方法应该独立于其他方法运行,避免了方法间的影响。 3. 更高级的JUnit 4特性 除了基本的断言和@Test注解外,JUnit 4还提供了许多高级特性,如: - `@...
JUnit4 提供了一系列的注解,如 `@Test`、`@Before`、`@After` 等,极大地简化了测试代码的编写过程。此外,JUnit4 还引入了参数化的测试方法和假设条件支持,增强了测试的灵活性和表达能力。 #### 三、JUnit4的...
JUnit 4.8.1版本还引入了一些其他注解,例如`@Before`和`@After`,用于在每个测试方法执行前和执行后执行特定的代码,确保测试环境的一致性。`@BeforeClass`和`@AfterClass`则是在整个测试类运行前和运行后执行的,...
另外,还有`@Ignore`注解可以暂时跳过某个测试,`@BeforeClass`和`@AfterClass`注解用于在整个测试类开始前和结束后执行一次的方法,这对于需要一次性设置和清理全局状态的场景非常有用。 除了基本的断言,JUnit4还...
- 注解支持:JUnit 4利用Java 5的注解功能,如`@Test`用于标记测试方法,`@Before`和`@After`用于设置测试前后的准备工作(Fixture)。 - 参数化测试:允许用不同参数运行同一个测试方法,提高测试覆盖率。 - 钩子...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了强大的工具来编写和运行可重复的、可靠的测试代码。JUnit4的解释文档,通常以JavaDoc的形式提供,包含了详细的API说明和使用示例,是学习和...
4. `@BeforeClass`和`@AfterClass`: 这两个注解的方法分别在所有测试方法之前和之后只运行一次,适合进行一次性设置和清理操作,如创建和销毁共享资源。 5. `@Ignore`: 如果你暂时不想运行某个测试,可以使用`@...