JUnit 4 中的Before After Ignore
Test BeforeClass AfterClass
@BeforeClass:针对所有测试,只执行一次,且必须为static
void
@Before:初始化方法
@Test:测试方法,在这里可以测试期望异常和超时时间
@Ignore:忽略的测试方法
@After:释放资源
@AfterClass:针对所有测试,只执行一次,且必须为static
void
一个JUnit 4 的单元测试用例执行顺序为:
@BeforeClass
–> @Before –> @Test –> @After –> @AfterClass
每一个测试方法的调用顺序为:
@Before –>
@Test –> @After
写个例子测试一下,测试一下
package junit4;
import org.junit.*;
import static org.junit.Assert.*;
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
@After
Test 'net.im47.demo.junit.JUnit4Test.testIgnore' ignored
@Before
@Test(50)
@After
@Before
@Test(Exception.class)
@After
@AfterClass
对比:
@BeforeClass 和
@AfterClass 对于那些比较“昂贵”的资源的分配或者释放来说是很有效的,因为他们只会在类中被执行一次。相比之下对于那些需要在每次运行之前都要初始化或者在运行之后都需要被清理的资源来说使用@Before和@After同样是一个比较明智的选择。
@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 的方法抛出异常的的情况下也一样会。
|
分享到:
相关推荐
详细的介绍了junit单元测试的过程,JUnit 是 Java 社区中知名度最高的单元测试工具,本文中所介绍的是最新的JUnit 4单元测试,JUnit 4 使用 Java 5 中的注解(annotation)使测试变得更加简单
java自定义 注解 annotation、标签库tag、监听listener、junit简单测试代码
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。
它大大简化了开发人员执行单元测试的难度,特别是 JUnit 4 使用 Java 5 中的注解(annotation)使测试变得更加简单。 在单元测试前首先规划单元测试代码应放在什么地方。把它和被测试代码混在一起,这显然会照成混乱...
junit4的jar包,使用annotation进行junit测试!
JUnit 是 Java™ 语言事实上的 标准单元测试库。...在本文中,执着的代码测试人员 Elliotte Harold 以 JUnit 4 为例,详细介绍了如何在自己的工作中使用这个新框架。注意,本文假设读者具有 JUnit 的使用经验。
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。 先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也...
常用注解 (体验annotation的简单便捷) 的简单便捷) .... .... ...... 13 新特性实战 (实践出真知) .... .... ......... 14 3 作业规范 .... .... .... .... ...... 21 4 附录 .... .... .... .... 22 4.14....
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。
单元测试所需的junit jar包,里面包含class jar 和...它的新特性主要是针对JAVA5中的标记(annotation)来简化测试,而不是利用子类、反射或命名机制。本文将讲述如何使用JUnit 4,当前前提是你最好具有JUnit的使用经验.
本文内容包括:引言JUnit4初体验JUnit深入JUnit和Ant总结本文主要介绍了如何使用JUnit4提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用Ant执行自动化的单元测试。本文假设读者对Eclipse下进行Java...
JUnit4视频教程及源码,由于文件较大,分割为JUnit4_01.zip,JUnit4_02.zip,JUnit4_03.zip三个压缩包并附文档,下载后解压便可观看视频,导入代码,直接在自己的机器上运行
JUnit4 主要目标便是利用Java5 的Annotation 特性简化测试用例的编写
java单元测试框架junit4.11版,基于annotation(注解)的junit帮助手册
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class)//Spring的Junit测试,会在测试开始时,创建Spring的应用上下文 @ContextConfiguration...
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。
Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 commons-...
这些新特性包括:注解驱动的依赖性注入(annotation-driven dependency injection),使用注解而非XML元数据来自动侦测classpath上的Spring组件,注解对生命周期方法的支持,一个新的web控制器模型将请求映射到加...
为了让JUnit发现系统的测试用例和测试方法,JUnit提供了Annotation修饰.@Test:所有希望被运行的测试方法都应该使用该Annotation@Before:如果希望每次运行测试方法之前先运行指定的回收资源的方法,则该回收资源的...