junit 4 中的Before After Ignore Test BeforeClass AfterClass

Unit 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
写个例子测试一下,测试一下

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同样是一个比较明智的选择。

时间: 2025-01-17 04:31:58

junit 4 中的Before After Ignore Test BeforeClass AfterClass的相关文章

JUnit单元测试举例(@Test,@Before,@After,@beforeClass,@afterClass,assertEquals,assertTrue等)

需要测试的类Person: package cn.edu.lstc.junit; public class Person { public void run() { System.out.println("run..."); } public void eat() { System.out.println("eat..."); } public String a() { return "1"; } } @Test,@Before,@After p

Junit测试中的setup和teardown 和 @before 和 @After 方法

这几天做Junit测试接触到了setup和teardown两个方法,简单的可以这样理解它们,setup主要实现测试前的初始化工作,而teardown则主要实现测试完成后的垃圾回收等工作. 需要注意的是Junit3中每个测试方法执行时都会执行它们,而不是一个类中执行一次,查了查资料,JUnit4版本采用注解的方式可以实现一个类只执行一次,下面看看测试代码: jar下载地址: http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22junit%22%20

浅谈Junit测试中反射和Jmock的应用

最近由于项目的需要,开发后的代码强制编写Junit测试,并且达到一定的coverage probility(主要应付客户).所以,为了达到一定的覆盖率,鄙人不得不在Case中大量使用反射(一般是针对private方法)和JMock(主要针对一些属性方法). 小编是做开发出身,由于对Spring的源代码有过或多或少的了解,因此对反射技术也有一定的了解.故在使用反射进行Junit测试的过程中,还算是没有遇到太多问题.小编认为,使用反射最重要的是要分清两点: 一是要反射的实现类(记住,这里的对象类型必

java Junit 测试中异常处理

错误提示: junit.framework.AssertionFailedError: No tests found in错误解决办法 用junit Test运行后,出现如下的错误:junit.framework.AssertionFailedError: No tests found in com.wichina.model.Test at junit.framework.Assert.fail(Assert.java:47) at junit.framework.TestSuite$1.ru

Spring-mvc junit单元测试中 如何回滚?

@RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration(value = "src/main/webapp") @ContextHierarchy({ @ContextConfiguration(name = "parent", locations = "classpath:./spring/applicationContext.xml") }) public class Messa

关于测试:JUnit4课程

JUnit4课程 JUnit4快速入门 测试实践 1.导入jar(右键Build Path --> Add Libraries --> Junit --> Junit4) 2.新建测试类:右键需测试类所在包new --> JUnit Test Case参照自动生成的测试类模板(可删除),写自己的测试方法 assertEquals(得到的正确值(即预测值), 程序得到的值); 3.运行测试:测试文件右键 --> Run as JUnit Test 4.Junit视图:状态条(绿

Junit中常用的注解说明

Java注解((Annotation)的使用方法是@注解名 ,能通过简单的词语来实现一些功能.在junit中常用的注解有@Test.@Ignore.@BeforeClass.@AfterClass.@Before.@After.@Runwith.@Parameters 以下是相关的介绍和使用说明: 一[email protected] 在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类.在junit4中,定义一个 测试方法变得简单很多,只

JUnit 4 使用 Java 5 中的注解(annotation)

JUnit 4 使用 Java 5 中的注解(annotation),以下是JUnit 4 常用的几个 annotation 介绍@Before:初始化方法@After:释放资源@Test:测试方法,在这里可以测试期望异常和超时时间@Ignore:忽略的测试方法@BeforeClass:针对所有测试,只执行一次,且必须为static void@AfterClass:针对所有测试,只执行一次,且必须为static void一个JUnit 4 的单元测试用例执行顺序为:@BeforeClass –>

junit中的assert方法总结

junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类.1.assertTrue/False([String message,]boolean condition);    判断一个条件是true还是false.感觉这个最好用了,不用记下来那么多的方法名. 2.fail([String message,]);    失败,可以有消息,也可以没有消息. 3.assertEquals([String message,]Object expected,Ob