02_Junit誤区------setup and teardown


1.setuup tearDownはテストクラスで一度しか実行しないと思っていたが、今日テストしてみたら、
各テストメソッドの前にsetUpを1回実行し、メソッドの後に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.クラス全体の実行前に1回、クラス全体の実行後に1回実行する方法はありますか?
Junit 3はこのような方法を提供していません.junit 4はあります.
コードを見る
  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で始まる