いつでも Moq を使用して単体テストを作成するElmah.ErrorSignal.FromCurrentContext
と、null 参照例外で失敗します。をモックすることができ、ControllerContext
このようなエラーログコマンドを使用したいと思います..
Elmah.ErrorSignal.FromContext(ControllerContext.HttpContext).Raise(e);
残念ながら、ControllerContext.HttpContext
はタイプのものHttpContextBase
であり、このエラー ログ メソッドでは機能しません。
Elmah エラー ログを直接呼び出すより良い方法はありますか? 残念ながら、Application.HttpContext
オブジェクトをモックすることはできません (以下の例)。それも目的を果たします。
モックApplication
とApplication.HttpContext
:
ctrlCtx.SetupGet(x => x.HttpContext.ApplicationInstance)
.Returns(new Mock<HttpApplication>().Object);
ctrlCtx.SetupGet(x => x.HttpContext.ApplicationInstance.Context)
.Returns(new Mock<HttpContext>().Object);
発生したエラー:
非仮想 (VB でオーバーライド可能) メンバーでの無効なセットアップ