2017-11-21 6 views
0

私は、junitテストのために以下の入力パラメータを持っています。いくつかのパラメータが異なり、残りが同じであるJunitテスト

基本的にinputFileと他のいくつかのパラメータを入力とし、データを生成するアルゴリズムをテストする必要があります。このデータをreferenceDataと比較する必要があります(referenceDataファイルもテストの入力パラメータの1つです)。アルゴリズムによって生成されたデータが参照データと同じ場合、テストは失敗します。それ以外の場合は失敗します。

inputFile // .xml File - is different for each test. there are total five. 
param 1 //remains same 
param 2 //remains same 
param 3 //remains same 
param 4 //remains same 
param 5 //remains same 
ReferenceData // .csv File - is different for each test. there are total five 

私の混乱は次のとおりです。

1)このシナリオのパラメータ化のJUnitスーツかどうか?はい、もし私がそれを実装する必要があります少しガイドラインを提供していただけますか? #

2)このシナリオでjUnitがうまくいかない場合は、他に何が使えますか?

3)私は、JUnitテストのセットアップ方法に.propertiesファイルからこれらのパラメータを読むべきでしょうか?それは良い習慣ですか?

+0

だけのリソースフォルダにサンプルのXMLのを持っており、それぞれのファイルを反復処理し、テストを実行しますか?テストと参照データの実行後に返される値を比較できるように、入力ファイルと参照ファイルの名前を同じにしておきます。 – SMA

答えて

2

あなたはJUnitParamsのlibを使用してこれを達成することができます。

(達人/ Gradleのプロジェクトのための有効な)プロジェクトの/src/test/resourcesフォルダに置きますXMLとCSVファイルを。

そして、このようにテストでそれらを使用する:readContentは、テキストファイルからコンテンツを読み込む方法です

@RunWith(JUnitParamsRunner.class) 
public class ServiceTest { 

    @Test 
    @Parameters({ 
      "first.xml, first.csv", 
      "second.xml, second.csv", 
      "third.xml, third.csv" 
    }) 
    public void shouldServe(String xmlFilePath, String csvFilePath) { 
     String xmlFileContent = readContent(xmlFilePath); 
     String csvFileContent = readContent(csvFilePath); 

     // call your business method here passing 
     // dynamic xml, csv and static params 
    } 
} 

関連する問題