xmlファイルへのパスの文字列を取り、オブジェクトを出力するクラスがあります。私はいくつかの事前生成されたテストスクリプトでNUnitを使ってクラスをテストしたいと思います。C#ユニットテスト、zipファイルからXMLを使用する
私はスクリプトをzipファイルに入れてプロジェクトに含めました。私はこのようなことをしたい:
// Not sure how to do this
List<byte[]> scripts = GetTheScriptsSomehow();
foreach(var script in scripts)
{
var parsedScript = ScriptParser.Parse(script);
Assert.AreEqual(parsedScript.Blah, "BLAH");
}
私が最も関心を寄せている部分は、圧縮されたスクリプトとプロジェクトの一部にアクセスする方法です。
ありがとうございます!
編集:いくつかのコメントに対処するため、zipファイルは、リリースされたコードベースではなく単体テストプロジェクトの一部です。テスト可能な既知の出力を生成するテストスクリプトが含まれています。それらはスクリプトがかなり大きいので圧縮されています(それぞれ100MB)
注それはユニットテストの異例の定義のように感じていること - ScriptParser、スクリプトとスクリプトそのものをパッケージ化し、おそらくビルドシステム - あなたは3無関係なコンポーネントをテストしています。通常、ScriptParserのテストを呼び出します。単体テストを実行しますが、スコープ統合テストのスクリプトは... –
@AlexeiLevenkov:私が見る限り、OPは 'ScriptParser.Parse'だけをテストしています。リソースからテスト・データをロードすること以外には、他の "コンポーネント"は含まれていません(コンポーネントではありません)。このテストで何の問題もない(おそらく 'foreach'を除いて、しかし私は判断する人ではない)。 –
私は "プロジェクトの一部"を "製品のアセンブリ/ファイルに含まれています"と誤解していると思います... "テスト用のスクリプトファイルのZipアーカイブ"と読んでください。 –