JUnitのポイントまとめ

3985 ワード

JUnitの知識ポイント:
注釈によってテストを実現します.
1.       before
2.       test
3.       after
4.       ignore
5.       beforeClass
6.       afterClass
7.runwith:実行するモード選択.デフォルトモードと他のモードがあります.パラメータテストを含める
8.パッケージテスト(1.runwith、2.実行するクラスの構成)
---------------------------------------------------------------
いくつかのテスターの説明:
1.デフォルトランナ:TestClassRunner
2.パラメータテストParameterized@Parametes注視によりパラメータを構築します.staticメソッドで構築され、集合を返します.
@Parameters
public static Collection regExValues() {
 return Arrays.asList(new Object[][] {
  {"22101", true },
  {"221x1", false },
  {"22101-5150", true },
  {"221015150", false }});
}

3.パッケージテストSuite.class注視:
@RunWith(Suite.class)
 
@SuiteClasses({ParametricRegularExpressionTest.class,
      RegularExpressionTest.class,
      TimedRegularExpressionTest.class})
public class JUnit4Suite {

}

4.バージョン不和の解決策:-------------------------------------選択了解()
AntとJUnit 4
現在、AntとJUnitは完璧な組み合わせとなって久しく、多くの開発者はこの関係がJUnit 4を導入した後、よりよくなるだけだと予想している.しかし、結果として、一定の問題がある.Ant 1.7以前のバージョンを実行している場合は、既存のJUnit 4テストを簡単に実行できません.それは、これらのテストを実行できないわけではありません.すぐに実行できないだけです.
ふさわしくないカップル
Ant(1.7以前のバージョン)でJUnit 4テスト(リスト14)を実行すると、いくつかの興味深い結果が得られます.
リスト14.簡単なJUnit 4テストクラス
                    
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.assertTrue;

public class RegularExpressionTest {
 private static String zipRegEx = "^\\d{5}([\\-]\\d{4})?$";
 private static Pattern pattern;

 @BeforeClass
 public static void setUpBeforeClass() throws Exception {
  pattern = Pattern.compile(zipRegEx);
 }

 @Test
 public void verifyGoodZipCode() throws Exception{		
  Matcher mtcher = this.pattern.matcher("22101");
  boolean isValid = mtcher.matches();		
  assertTrue("Pattern did not validate zip code", isValid);
 }
}

複数の失敗
Antで脆弱なjunitタスクを使用すると、リスト15のエラーが発生します.
リスト15.たくさんの間違い.
                    
[junit] Running test.com.acme.RegularExpressionTest
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.047 sec
[junit] Testsuite: test.com.acme.RegularExpressionTest
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.047 sec

[junit] Testcase: warning took 0.016 sec
[junit]     FAILED
[junit] No tests found in test.com.acme.RegularExpressionTest
[junit] junit.framework.AssertionFailedError: No tests found in
  test.com.acme.RegularExpressionTest
[junit] Test test.com.acme.RegularExpressionTest FAILED

対応するソリューション
Ant 1.7以前のバージョンでJUnit 4テストを実行するには、リスト16に示すように、suite()のインスタンスを返すJUnit4TestAdapterメソッドを使用してテスト・インスタンスを再構築する必要があります.
リスト16.古い方法の新しい使い方
                    
public static junit.framework.Test suite(){
 return new JUnit4TestAdapter(RegularExpressionTest.class);
}
@Test注記の名前と似ているため、このインスタンスのTestの戻りタイプ名を完全にする必要があります.suite()メソッドの準備が完了すると、どのバージョンのAntでもJUnit 4テストを快適に実行できます.