2011-01-13 13 views
3

ここは私のシナリオです。私のJunitテストでは、多くの場所で、私はユーザー名、説明、URL、無効なURLなどを提供する必要があります。あらゆる場所でハードコードするのは良くありません。だから私はそれらの値を中央の場所(ファイル)に移動したい。私はいくつかのデータプロバイダにDPを言っています。 DP.getUserName()、DP.getUrl()などは、これらの値が必要な場所で呼び出すことができます。また、私は別のユーザー名、URL、無効なURLなどのプールを持っています。私はgetUrlを呼び出すと、ランダムにプールからそれを拾うでしょう。ファイルベースのデータプロバイダ

私が考えることができるのは、java.util.Propertiesを使用してファイルからpropertisをロードすることです。コールするたびに、ランダムに1つのエントリを返します。

この目標を達成するためのより良いアプローチはありますか?ありがとう。

答えて

0

プロパティファイルは良いアイデアです。アイテムが変更されたときにコードを再コンパイルする必要もありません。プールからgetUrlを引っ張っても問題ありません。

ただし、getUserName()、getErrorURL()、getDatabaseName()などがあり、すべてがStringを返す場合は、これらの単一のKey-ValueプロパティをDPクラスのマップに格納し、変数にアクセスするためのパブリック列挙リストを用意することを考えてください。以下のような

何か:あなたは、各プロパティの新しい方法と、変数を追加する必要はありません道

private Map<PROP, String> map; 
public enum PROP{ USERNAME, PASSWORD, DATABASE_NAME}; 

public String getProperty(PROP key){ 
    return map.get(key); 
} 

+0

コメントありがとうございます。ユーザー名、URLなどのプールをサポートするにはどうすればよいですか?プロパティファイルはキーと値のペアなので、プロパティファイルは次のようになります:USERNAME1 = Tom – David

+0

1つの方法は、区切り文字を使用してロードするときに分割することです:INVALIDS = bob | tom | randy – jzd

+1

'Map'をインスタンス化するときには、 'EnumMap'です。 – dkarp

関連する問題