これがパラメータ化されたjunit4 testing
で可能な場合は、どのドキュメントでも検索しています。複数の入力データと等しいかどうかをテストする方法
は、基本的には二つのクラス、GameEntryとスコアボードが何であるかを私が持っている:
public class GameEntry{
private String name;
private int score;
// Constructor and Getters...
}
public class Scoreboard{
private int numEntries = 0;
private GameEntry[] board;
// Constructor
public Scoreboard(int capacity){
board = new GameEntry[capacity];
}
// Add method - Only if entry is higher than current entries
public void add(GameEntry e){
// Code here...
}
// Remove method
// Reset method
}
私はあなたが異なる入力データPassing arrays to Parameterized JUnitの配列を返すパラメータ化テストについて読んだが、それは私が希望かなりものではありませんする。私は、gameEntries名、スコア値、および名前とスコアの期待値のための別のテキストファイルで入力テキストファイルを作成する10の異なるテストを実行することに興味があります。後でデータを変更したい場合は、すべてのデータをテストクラスから除外したいと思います。入力と予想されるファイルが解析された後、私はAssert.assertArrayEquals(expectedResult, result)
を使って配列を比較します。
パラメータ化されたJunit
テストを行わなければ問題はありませんが、1つのテストが失敗した場合、テスト全体が失敗します。私は入力を追跡するためのカウンタを保持することができると思います。私はDRYを避けるためにただ一つのテストを書いてみたいです。これはJunit
またはtesting framework
で可能ですか?
このような問題を解決するためにデータプロバイダが利用できるTestNGを使用できます。テストケースが1つのエントリで失敗した場合でもTestNGであっても、そのケースについてテストは中止されます。 – biziclop