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

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开头

 

 

你可能感兴趣的:(单元测试)