1

XMLファイルを取得してCSVに、またはその逆に変換する単純なファイルコンバーターを作成しています。

XMLtoCSV と CSVtoXML の 2 つのクラスを実装しました。両方とも、入力ファイル パスを取得してテキストをフィルター処理し、指定されたフィルターで XML をフィルター処理して変換を実行する Convert メソッドを実装しています。(たとえば、XML に従業員の詳細が含まれている場合、特定の部門の従業員のみを取得して CSV ファイルに変換するようにフィルター処理することができます)。

この Convert メソッドをテストする単体テストがあります。その中で、入力ファイル パスとフィルター文字列を指定し、Convert 関数を呼び出してブール値の結果をアサートしますが、フィルター処理が機能して変換が完了したかどうかもテストする必要があります。

私の質問は、ファイル IO にアクセスし、単体テストを介してフィルタリングと変換を行う必要があるかということです。これは統合テストではありませんか? そうでない場合、実際にファイルを変換して結果を返すことなく、フィルタリングが機能したと断言するにはどうすればよいですか? Convert メソッドを Moq することを考えましたが、必ずしも Convert メソッドが正常に機能しているとは限りません。

ヘルプ/アドバイスをいただければ幸いです。

ありがとう

4

2 に答える 2

4

クラスでストリームを使用し、アプリケーションでファイル ストリームを渡し、単体テストなどで「偽の」または StringStream を渡すことをお勧めします。これにより、この xml を WebService またはその他の方法で取得することにした場合に、より柔軟になります。ファイル パスではなく、ストリームを渡すだけで済みます。

于 2013-09-18T18:32:27.870 に答える