ホームページ  >  記事  >  Java  >  グラフィカルな Java Junit エントリ ケース (コード)

グラフィカルな Java Junit エントリ ケース (コード)

高洛峰
高洛峰オリジナル
2017-03-12 09:29:461263ブラウズ

Java の Junit エントリ ケース (コード) の詳細な説明

コードのデモに直接移動します:

たとえば、ArrayList クラス メソッドを作成しました:

public class ArrayList implements List { 
    private int size = 0;
    
    private Object[] elementData = new Object[100];
    
    public void add(Object o){
        
    }
    public void add(int index, Object o){
        
    }
    
    public Object get(int index){
        return Object;
    }
    
    public Object remove(int index){
        return Object;
    }
    
    public int size(){
        return -1;
    }  
}

テストしたい場合はどうすればよいですかそれは今ですか?現時点では、Junit ツールを使用できます。

まず Junit クラスを作成します。

グラフィカルな Java Junit エントリ ケース (コード)

テストするクラスを直接右クリックすると、次のようなテスト メソッドを直接選択できます。

グラフィカルな Java Junit エントリ ケース (コード)

それからメソッドを直接追加し始めるだけです:

public class ArrayListTest {

   // 这里的@Test是必须的注释,就是告诉JUnit这里就是一个测试方法
    @Test
    public void testGet() {
        static Object[] Data = new Object[]{1,2,3,4,5,6,7,8};
            ArrayList test;
                // 添加数据到test中
                .........
                ......... 

                //测试test 这里要说一下,
                //出了要assertEqual 判断值是否相等的话,其实还有assertFalse,assertNull等方法判断
                assertEqual(Data[1],test.get(1));
    }    
}

はい、そうです、とても簡単です。クラスに問題がない場合は、次のような画像を返すことができるはずです:

グラフィカルな Java Junit エントリ ケース (コード)

ただし、追加や削除などの他のメソッドをテストしている場合は、ArrayList を事前に用意する必要があることに気づきましたか? -データが詰まっていますか?テストを実行するたびにこれを行う必要がありますか?

これは冗長すぎます。この時点で、JUnit には独自の賢いトリックがあります:

public class ArrayListTest {

    static Object[] Data = new Object[]{1,2,3,4,5,6,7,8};
    ArrayList test;
       
    //这个before注释可以理解成:
    //在执行每个@Test修饰的方法前都先要执行这个setUp,等于前置条件一样
    @Before
    public void setUp() throws Exception{
        test = new ArrayList();
        for(Object data: Data){
            test.add(data);
        }
    }
        //test function ;

}

これでほぼ問題ないようですが、複数のテスト クラスがある場合は 1 つずつ実行する必要があります。これは main メソッドのテストを作成するのと似ていませんか?

そのため、Junit は別のテスト スイート グループを提供しています:

//你现在有3个测试类
public class Test1{
    @Test
    public void test(){
        //...Test1
    }
}

public class Test2{
    @Test
    public void test(){
        //...Test2
    }
}
public class Test3{
    @Test
    public void test(){
        //...Test3
    }
}


//创建一个测试套件类(测试套件可以互相叠加的):
@RunWith(Suite.class)
@Suite.SuiteClasses({test1.class,test2.class,test3.class
                    })
public class SuitTest {
  //必须是public 修饰的,空类
}

上記のコメントに加えて、実際にはかなりの数のコメントがありますが、ここではまだ説明しません。 (こんなもの使うなんてクズすぎる、逃げろ...), 読者の皆さんに見てもらえるように投稿します:

グラフィカルな Java Junit エントリ ケース (コード)

以上、単なる紹介です。高度な技術も考え方もありません。単純: -/。

最後に一文をシェアしたいと思います:

テストケースは、あなたが間違っていないことを証明するために使用されるものであり、あなたが正しいことを証明するために使用されるものではありません。

私自身、この言葉は本当に心に響くと感じています。


以上がグラフィカルな Java Junit エントリ ケース (コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。