ターゲット ディレクトリにダンプされるドキュメントを処理するシステムで作業しています。FileSystemWatcher OnChanged イベントを検出して、ファイルを取得します。
単体テストの一環として、これを自動化するにはどうすればよいですか? 変換が正しいことを確認するために比較する入力ファイルと出力ファイルをどのように整理すればよいですか? これは、diff コマンドを発行するバッチ ファイルでより適切に処理されるものですか?
ターゲット ディレクトリにダンプされるドキュメントを処理するシステムで作業しています。FileSystemWatcher OnChanged イベントを検出して、ファイルを取得します。
単体テストの一環として、これを自動化するにはどうすればよいですか? 変換が正しいことを確認するために比較する入力ファイルと出力ファイルをどのように整理すればよいですか? これは、diff コマンドを発行するバッチ ファイルでより適切に処理されるものですか?
まず、正確に何をテストしたいのかを考えてみましょう。
ファイルが変更されたことを検出した後、それは正しく処理されますか?
それとも、FileSystemWatcher クラスが機能するということですか?
それとも、オペレーティング システムが正しい通知を正しい順序で送信するのでしょうか (正しいとは、基本的には期待どおりという意味です)。
処理だけを行う必要がある場合は、ウォッチャー クラスをモックアップするか、IoC コンテナーを使用して単体テスト用のイベントを発生させるものを提供することを検討します。
オペレーティング システムが正しいイベントを正しい順序で提供するかどうかにかかわらず、ファイルを処理するコードをモックアップして、「はい、このファイルが変更されたと言われました」という状態を保存し、単体テストを行います。次に、一時ディレクトリ内のファイルを操作します。
ただし、単体テストが外部の複雑さに依存するほど、壊れやすくなることに注意してください。