2011-07-08 19 views
0

私のメソッドの1つをユニットテストしています。このメソッドはStringオブジェクトを入力として受け取ります。この文字列オブジェクトにはxmlデータが格納され、メソッドによって処理されます。私のXML入力は種類が大きいので、このXML文字列を春の設定ファイルに設定して、何とかJnuitのテストケースにアクセスすることが可能ですか?私のJUnitテストでXML文字列にアクセスする他の簡単な方法は?Junitテスト用のxmlデータをspring設定で設定する

答えて

2

を参照してください。春はあなたがこれを行うことができますClassPathResourceというクラスが用意されています

ClassPathResource res = new ClassPathResource("/testing/test1/doc2.xml"); 
InputStream is = res.getInputStream(); 

そうすれば、あなたの試験データは、あなたの春の設定ファイルを乱雑にされていません。テストで使用されたファイルへのパスを含むjava.util.Listを定義し、それを反復することをお勧めします。あなたはこのような春の設定から自動的にそれを引くことができます。

@Resource(name="test1ValidDocuments") 
private List test1ValidDocs; 

春は、あなたのテストコンテキストでtest1ValidDocuments名前の一覧豆を探します。

まだお持ちでない場合は、ビルドとテストにMavenを使用することをおすすめします。この種のものを簡単に管理するのは簡単です。たとえば、Mavenはクラスパスを管理します。 PROJECT_NAME/src/test/resourcesに入れたファイルとフォルダは、テストフェーズでのみ表示されます(mvn test)。

0

CDATA xml構造でラップすると、xmlプロパティ値をSpringコンフィグレーションで使用できるはずです。

は、最善の解決策は、テストクラスパスに別々のファイルにXMLを配置し、必要に応じてクラスパス資源としてそれらをロードすることですWikipedia entry

+0

入力いただきありがとうございます。しかし私はMikeのソリューションと一緒に行くつもりです。私のプロジェクトがmavenを使用しており、XMLデータを別のファイルに入れるのは簡単でしょう。 – prashant

0

私は完全に@Mikeソリューションに同意します。あなたのテストに春を使う必要はないと言っていました。unlessあなたはすでにテスト中に豆を注入しています。あなたのメソッドはスプリングコンテキストawarenessを使わないで仕事をしなければならないので、再利用可能になり、テストの実行はより速くなります。

関連する問題