2017-11-08 13 views
0

私たちのソリューションには、テキストファイルに発生するすべての例外を記録するメソッドを持ついくつかのコントローラがあり、ASP.NETWebAPI 2プロジェクトがあります。各WebAPIメソッドにはtry...catchブロックがあり、エラーを記録する際にカスタムロジックが含まれているため、例外が発生した場合にログが正しい形式で生成されているかどうかをすべてのコントローラのすべてのメソッドで迅速にテストします。私のソリューションにテストプロジェクトを追加することでこれを行うことができますか?テストクラスからWebAPIメソッドを呼び出すとき、呼び出されるメソッドはスローしてエラーを返してログに記録する必要がありますか?このケースをテストする他の選択肢はありますか?例外ログ用のASP.NET WebAPIメソッドのテスト

+0

は、例外が期待されている「間違っている」引数を持つすべてのメソッドを呼び出す別の方法を持っています。それとも何が問題なのですか? – rst

答えて

0

あなたのWebAPIを公開し、あなたのテストパラメータのセットを使ってAPI内のすべてのメソッドを呼び出すためのコンソールプログラムを作成するだけで、あなたの例外を含むtxtファイルを取得します。 テストを自動化します。 ユニットテストを作成するには、次のリンク情報を使用してください。

1

まず、この種のエラーログは実際にはグローバル例外ハンドラで実行する必要があるため、コントローラで繰り返し同じコードを何度も繰り返す必要はありません。

第2に、ロギングに関しては、ほとんどの場合、メッセージのフォーマットではなく、メッセージのログのみをテストする必要があります(ロギングクラスには独自のユニットテストが必要です)。

はここでグローバルハンドラを作成する方法についての良い読み物です:https://docs.microsoft.com/en-us/aspnet/web-api/overview/error-handling/web-api-global-error-handling

関連する問題