2016-06-14 18 views
-2

私はTestNGで作業しています。私は数千のdataProvidersメソッドを持つクラスを持っています。TestNGで複数のDataProviderを管理するには

Class X { 
    // some bootstrap code 

    @DataProvider(name = "test1") 
    public static Object[][] primeNumbers() { 

    } 

    DataProvider(name = "test2") 
    public static Object[][] primeNumbers() { 

    } 

    DataProvider(name = "test3") 
    public static Object[][] primeNumbers() { 

    } 


    ///// some more data providers 

    DataProvider(name = "test100") 
    public static Object[][] primeNumbers() { 

    } 
} 

このクラスファイルは長く成長しています。私は小さなクラスに分けて、小さくて保守的に見えるようにしたい。助言がありますか?私の理解あたりとして

答えて

1

  1. このクラスXが唯一のクラスをテストするためにデータプロバイダを持つ場合には、このような場合は、それはあなたのクラスは非常に多くのことをやっている意味、それは反対していますそのクラスのSRP(Single Responsibility Principle)に変更します。その場合、可能であればメインクラスをリファクタリングする必要があります。

  2. クラスXがデータプロバイダを複数のクラス(プロジェクト内のすべてのクラスの可能性があります)に使用されている場合、それを分解して特定のクラスごとに異なるデータプロバイダクラスを作成し、特定のクラスのデータプロバイダのみ。

  3. テストするクラスのサイズが十分小さい場合は、クラスごとに専用のデータプロバイダクラスを作成せずに、同じテストクラスにデータプロバイダを書き込むことができます。

プロジェクトの要件に応じて任意のオプションを選択できます。希望それはあなたを助けるかもしれない。