02_Junit误区------setup and teardown

本文详细解析了JUnit测试框架中测试方法的执行流程,包括setUp和tearDown方法的作用及调用时机,并介绍了如何使用@BeforeClass和@AfterClass注解来实现整个测试类执行前后仅运行一次的特定方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.之前一直认为setUp tearDown在测试类中只执行一次,今天测试了下,才知道,

   每个测试方法前执行一次setUp,执行方法后执行tearDown

  看测试代码:

 import static junit.framework.Assert.*;

import junit.framework.TestCase;

public class CalculatorTest extends TestCase {

	private Calculator cal = null;
	
	protected void setUp() throws Exception {
		System.out.println("setup....");
		cal = new Calculator();
	}

	protected void tearDown() throws Exception {
		System.out.println("teardown....");
	}

	public void testAdd() {
		assertEquals(5, cal.add(2, 3));
	}

	public void testMinus() {
		assertEquals(8, cal.minus(10, 2));
	}

	public void testMultiply() {
		assertEquals(20, cal.multiply(10, 2));
	}

	public void testDivide() {
		assertEquals(5, cal.divide(10, 2));
	}

}

 测试结果

 

 写道
setup....
teardown....
setup....
teardown....
setup....
teardown....
setup....
teardown....

2.有没有办法在整个类执行前 执行一次,整个类执行完后执行一次呢?

  Junit3没有提供这样方法,junit4有的

  看代码

  import junit.framework.TestCase;

import org.junit.AfterClass;
import org.junit.BeforeClass;

public class BeforeClassTest extends TestCase{

	@BeforeClass
	public void testBeforeClass(){
		System.out.println("before class");
	}
	
	
	
	public void testAdd() {
	}

	public void testMinus() {
	}

	public void testMultiply() {
	}

	public void testDivide() {
	}
	
	@AfterClass
	public void testAfterClass(){
		System.out.println("after class...");
	}


}
 

执行结果

 

 写道
before class
after class...

 就执行了一次。

 注意@BeforeClass和@AfterClass的方法也要以test开头

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值