1. ホーム
  2. java

[解決済み] データプロバイダを使ったJavaテストの書き方

2022-03-11 01:41:48

質問

現在、初めてのJavaプロジェクトに取り組んでいて、完全にTDDにしたいと思っています。私はテストを書くためにJUnitを使用しています。どうやら、JUnitは以下のものをサポートしていないようです。 データプロバイダ そのため、同じメソッドを20種類の異なるバージョンの引数でテストするのは、かなり面倒です。データプロバイダをサポートしているJavaの最も一般的な/標準的なテストツールは何ですか?私は、以下のものに出会いました。 テストNG しかし、それがどの程度普及しているのか、あるいは代替品と比較してどうなのか、見当がつきません。

もし、JUnitを使ってこの挙動をうまく実現する方法があれば、それも有効かもしれません。

解決方法は?

JUnit 4 にはパラメータ化されたテストがあり、これは php のデータプロバイダと同じことをします。

@RunWith(Parameterized.class)
public class MyTest{ 
     @Parameters
    public static Collection<Object[]> data() {
           /*create and return a Collection
             of Objects arrays here. 
             Each element in each array is 
             a parameter to your constructor.
            */

    }

    private int a,b,c;


    public MyTest(int a, int b, int c) {
            this.a= a;
            this.b = b;
            this.c = c;
    }

    @Test
    public void test() {
          //do your test with a,b
    }

    @Test
    public void testC(){
        //you can have multiple tests 
        //which all will run

        //...test c
    }
}