Junitテスト項目基礎
5665 ワード
Junit 3.8
1 .eclipseの下にJunitのlibraryを追加
右クリックアイテム-』Build Path-』add library-』選択Junit
2.jarパッケージを公式サイトでダウンロードし、プロジェクトにインポートすればよい.
3.試験用例を作成する.srcの同じレベルの下に新しいsrc foldをtestと名付けます.testの下に新しく作成されたテスト例は、テストするクラスに対応します.例えば.Student.java --》studentTest.Java
4.Junitスローガン:keep the bar green to keep the code clean
5.ユニットテストはあなたが正しいことを証明するためではなく、あなたが間違っていないことを証明するためです.
6.試験例はユニット試験の重要な側面である.
http://d.download.csdn.net/down/1653850/jerry2011
http://download.csdn.net/source/1653850#acommentリンクのダウンロード
7.テストクラスTestCaseの親を継承する
7.1満たさなければならない原則public void無パラメータメソッド名はtestで始まる必要があります
8.TestCaseの間には完全な独立性を保たなければならず、いかなる依存関係も許されない.
9.TestCaseをテストする順序に依存してはいけない.
10. DRY (don’t repeat yourself)
11普通は先にテストを書いて、後で実例を書きます
12 public static void main(String[]args]{//Junitが持参したドライバ
junit.textui.TestRunner.run(xx.class);
}
13 . テスト前はどんな状態で、テスト後はどんな状態になるべきですか.
14.プライベートメソッドのテスト
A.修正方法のアクセス修飾子
B.反射を利用してテストクラスでターゲットクラスのプライベートメソッドを呼び出す.(推奨)
15.テストキットTestSuiteは、複数のテストを組み合わせて同時に複数のテストを実行することができます.
TestAllクラスを作成し、次のようにします.
同時に、1つの方法を複数回繰り返しテストする方法.そうすることができる
Junit4
16 Junit 4はテストを要求するクラスではなく必ずTestCaseを継承し,Annotionを導入することができる.メソッド名の前に@Testを加える.
次のようになります.
17 Junit 4はメソッド名のフォーマットを要求していませんが、必ず良い命名習慣が必要です.
@Beforeと@Afterで構築と廃棄を実現でき、Junit 3を実現できる.8のsetUpメソッドとtearDownメソッド.
18@Before Classおよび@AfterClassを使用して、グローバルな初期化方法を定義します.データベースのリンクなどです.
19.@Test(timeout=300)を用いて,一つの方法がタイムアウトしたか否かを判定することができる.
@Test(expected=Exception.class)で異常発生の有無を判定します.
@Ignore("string")を利用して、テストをしないでください.クラス全体にも使えます.
次のようになります.
20パラメトリックテスト(Parameters):テストクラスがパラメータを使用して実行される場合、クラスの前に@Parameters注記を宣言して修飾し、構築方法でパラメータに値を割り当てる必要があります.最後にテストクラスを作成します.
次のようになります.
1 .eclipseの下にJunitのlibraryを追加
右クリックアイテム-』Build Path-』add library-』選択Junit
2.jarパッケージを公式サイトでダウンロードし、プロジェクトにインポートすればよい.
3.試験用例を作成する.srcの同じレベルの下に新しいsrc foldをtestと名付けます.testの下に新しく作成されたテスト例は、テストするクラスに対応します.例えば.Student.java --》studentTest.Java
4.Junitスローガン:keep the bar green to keep the code clean
5.ユニットテストはあなたが正しいことを証明するためではなく、あなたが間違っていないことを証明するためです.
6.試験例はユニット試験の重要な側面である.
http://d.download.csdn.net/down/1653850/jerry2011
http://download.csdn.net/source/1653850#acommentリンクのダウンロード
7.テストクラスTestCaseの親を継承する
7.1満たさなければならない原則public void無パラメータメソッド名はtestで始まる必要があります
8.TestCaseの間には完全な独立性を保たなければならず、いかなる依存関係も許されない.
9.TestCaseをテストする順序に依存してはいけない.
10. DRY (don’t repeat yourself)
11普通は先にテストを書いて、後で実例を書きます
12 public static void main(String[]args]{//Junitが持参したドライバ
junit.textui.TestRunner.run(xx.class);
}
13 . テスト前はどんな状態で、テスト後はどんな状態になるべきですか.
14.プライベートメソッドのテスト
A.修正方法のアクセス修飾子
B.反射を利用してテストクラスでターゲットクラスのプライベートメソッドを呼び出す.(推奨)
15.テストキットTestSuiteは、複数のテストを組み合わせて同時に複数のテストを実行することができます.
TestAllクラスを作成し、次のようにします.
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class TestAll extends TestCase{
public static TestSuite suite(){
TestSuite suite = new TestSuite();
suite.addTestSuite(Calculator2Test.class);
suite.addTestSuite(DeleteAllTest.class);
suite.addTestSuite(CalculateTest.class);
return suite;
}
}
同時に、1つの方法を複数回繰り返しテストする方法.そうすることができる
TestSuite suite = new TestSuite();
suite.addTestSuite(Calculator2Test.class);
suite.addTestSuite(DeleteAllTest.class);
suite.addTestSuite(CalculateTest.class);
// calculate add 20
suite.addTest(new RepeatedTest(new CalculateTest("testAdd"),20));
return suite;
Junit4
16 Junit 4はテストを要求するクラスではなく必ずTestCaseを継承し,Annotionを導入することができる.メソッド名の前に@Testを加える.
次のようになります.
public class CalculatorJunit4Test{
private CalculatorJunit4 calculatorJunit4;
public CalculatorJunit4Test() {
calculatorJunit4 = new CalculatorJunit4();
}
@org.junit.Test
public void testAdd(){
int result = calculatorJunit4.add(2, 3);
Assert.assertEquals(5, result);
}
}
17 Junit 4はメソッド名のフォーマットを要求していませんが、必ず良い命名習慣が必要です.
@Beforeと@Afterで構築と廃棄を実現でき、Junit 3を実現できる.8のsetUpメソッドとtearDownメソッド.
18@Before Classおよび@AfterClassを使用して、グローバルな初期化方法を定義します.データベースのリンクなどです.
@BeforeClass
public static void globalInit(){
System.out.println("globalInit()");
}
@AfterClass
public static void globalDestory(){
System.out.println("globalDestory()");
}
19.@Test(timeout=300)を用いて,一つの方法がタイムアウトしたか否かを判定することができる.
@Test(expected=Exception.class)で異常発生の有無を判定します.
@Ignore("string")を利用して、テストをしないでください.クラス全体にも使えます.
次のようになります.
@Test(timeout=3000) // 3
public void testAdd(){
int result = calculatorJunit4.add(2, 3);
Assert.assertEquals(5,result);
}
@Ignore
@Test(expected = Exception.class)//
public void testDivide() throws Exception{
calculatorJunit4.divide(1, 0);
}
20パラメトリックテスト(Parameters):テストクラスがパラメータを使用して実行される場合、クラスの前に@Parameters注記を宣言して修飾し、構築方法でパラメータに値を割り当てる必要があります.最後にテストクラスを作成します.
次のようになります.
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class ParametersTest {
private int expected ;
private int input1;
private int input2;
private CalculatorJunit4 cal;
@Parameters
public static Collection preparedData(){
Object object[][] = {{5,2,3},{8,1,7},{0,-1,1},{20000,10000,10000}};
return Arrays.asList(object);
}
public ParametersTest(int ex,int inp1,int inp2){
this.expected = ex ;
this.input1 = inp1;
this.input2 = inp2;
}
@Before
public void setUp(){
System.out.println("setUp");
cal = new CalculatorJunit4();
}
@Test
public void testAdd(){
assertEquals(this.expected, cal.add(this.input1, this.input2));
}
}