Javaベース——JUnit

3293 ワード

JUnit     


テストの重要性は疑いの余地がないが、どのようにテストをより正確かつ全面的にし、プロジェクトから独立し、ハードコーディングを避けるか、JUnitは私たちに良い解決策を与えた.
JUnitはユニットテストのために生まれた、Java言語のユニットテストフレームワークと言える.もちろん、JUnitと同様に、他の言語のユニットテストフレームワークには、CppUnit、NUnitなどがあり、ほとんどのユニットテストツールXUnitはJUnitに基づいて書かれています.
一、JUnitの命名規則と習慣
1、ClassAという被テスト関数がある場合、テストクラスの名前はTestClassAです
2、methodAという被試験関数がある場合、試験関数の名前はtestMethodAである


まず、プロジェクトクラスClassが次のように仮定します.
public class Classs {
Studentstudent=null;
// 
publicList<Student> QueryStudent(){
List<Student>lsts=new ArrayList<Student>();
returnlsts;                
}
 
publicStudent QueryOne(){
returnstudent;
}
}
 

QueryStudioメソッドが定義され、セットが返されます.QueryOneのメソッドはオブジェクトを返します.はい、メソッドをテストします.
public final voidtestQueryStudent() {
ClasssmyClass=new Classs();
assertNotNull(myClass.QueryStudent());
}
 
publicfinal void testQueryOne() {
ClasssmyClass=new Classs();
assertNotNull(myClass.QueryOne());
}

この方法はJUnitフレームワークで断言と呼ばれ、JUnitは私たちに多くの断言を提供してくれました.例えば、assertEqual、assertTrue....これらの断言を用いて,2つの値が等しいかどうか,あるいは2元条件が真であるかどうかなどの問題を判断することができる.
その後、JUnitを実行してテスト結果を検出することができ、Projectファイルに影響を与えない前提でProjectユニットのテストを実現しました.
JUnitフレームワークの下で、彼はtestですべてを自動的に実行します.冒頭のテストメソッド(javaの反射メカニズムを利用)では、それらのメソッドの実行をどのようにカスタマイズしますか?1つの方法は、testの先頭を使わずにテスト方法の名前を変更することができ、テストフレームワークが無視されます.2つ目の方法は、必要なテストセットを手動で組み合わせることができます.test suiteを作成することで取得できます.どのテストクラスにもsuiteという静的メソッドが含まれます.
TestStudioクラス:
public class TestStudentextends TestCase {
 
    public TestStudent(String string) {
super(string);
}
 
protectedvoid setUp() throws Exception {
super.setUp();
}
 
publicfinal void testQueryOneClass() {
Studentstudent=new Student();
assertNotNull(student.QueryOneClass());
}
 
publicfinal void testQueryClasss() {
Studentstudent=new Student();
assertNotNull(student.QueryClasss());
}
 
 public static Test suite(){
 TestSuite suite = new TestSuite();
 suite.addTest(newTestStudent("testQueryOneClass"));
 return suite;
 }
}

どのようなtestメソッドを実行するかをsuiteによって明示的に説明し、構造関数のStringパラメータに値を渡すことで、TestCaseにネーミングテストメソッドへの参照を返します. 
2つのクラスのテスト方法をテストする場合は、もう1つのクラスを書いてsuiteメソッドを書いて、いくつかのクラスのテスト方法を選択することができます.
TestCompositeクラス:
public classTestComposite extends TestCase {
 
  public TestComposite(String string) {
super(string);
}
 static public Test suite(){
 TestSuite suite = new TestSuite();
 suite.addTestSuite(TestClasss.class);
 suite.addTest(TestStudent.suite());
 return suite;
 }
}

このクラスはTestStudioクラスのsuiteメソッドを実行して実行するテストメソッドを指定し、TestClassクラスに存在するネーミング仕様に合致するメソッドも実行します.


まとめ


JUnitは私たちに多くの便利なサービスを提供してくれました.例えば、テスト方法では、すべてのデータベース接続が必要であれば、コードに何度も書くのではないでしょうか.心配しないでください.JUnitは私たちにコントロールできる方法を提供してくれました.私たちはsuiteに対してsetupとtearDownを作る必要があります.必要なsuite(どんな方法でも)を提供し、それをTestSetupオブジェクトにパッケージする必要があります.ダイナミックエージェントの考えと似ています.興味があれば、自分で調べて、簡単に実現することができます.