2

DNN 6.1 でモジュールを開発しながら、WebFormsMvp、NUnit、NSubstitue、および FluentAssertions を使用して TDD を実行しています。

多くの DNN 関連リソースで推奨されているように、プレゼンター コードを、DNN の ProcessModuleLoadException メソッドを呼び出してエラーをログに記録し、わかりやすいエラー メッセージをユーザーに提示する try/catch ブロックにラップします。

しかし、それを行うと、単体テストで特定のエラーをテストできません (たとえば、特定のクエリ文字列パラメーターなしでモジュールが呼び出された場合に (カスタム) "ExpectedQueryStringParameterNotPresent" エラーがスローされることをテストしたい)。私がテストしている例外は、テスト対象のコードをラップする try/catch ブロックによって飲み込まれます。

DNN のグローバル エラー処理を利用して、特定の例外の単体テストを行う方法はありますか?

4

1 に答える 1

0

これは、単体テストを行う他のプロジェクトと DNN で違いはありません。ProcessModuleLoadException は、スローされたエラーの内部ログと表示を行う単なる void です。

コード サンプルがないと、すべてのコードを Page_Load メソッドに記述しているように聞こえます。個々の関数を、独自の例外を処理しない (またはカスタムの例外をスローする) 独自のメソッドに抽出し、それらを単体テストします。

于 2013-05-14T15:54:17.353 に答える