質問
私はこの記事を見たが、私はそれによってソート混乱の思います。
どのように私はELMAHのErrorSignalルーチンを模擬することができますか?の
私はオプション2で探しています。
Create a wrapper class around the call to Raise and just mock out the wrapper class.
public class ErrorSignaler {
public virtual void SignalFromCurrentContext(Exception e) {
if (HttpContext.Current != null)
Elmah.ErrorSignal.FromCurrentContext().Raise(e);
}
}
は、私はちょっとこれは、インターフェイスを実装していないようだという事実によってかかわらず混乱していて、私は本当にわから相続のいくつかの並べ替えのための場所であるように思わ理由はないです。
おかげ
解決
ここでの考え方は、あなたが直接ELMAHを呼び出すのではなく、エラーを通知するために、あなたのコード内でErrorSignaler
クラスを使用するだろうということです。 HttpContext.Current
がヌルであるため、ユニットテストでコードを実行する場合、ELMAHコンポーネントが使用されない、任意のヌル参照例外ができなくなります。
またErrorSignaler
インタフェースを作成することができます
public interface IErrorSignaler
{
void SignalFromCurrentContext(Exception e);
}
必要に応じてIErrorSignaler
を実装するために使用される実装は、ユニットテストでモックすることができること方法。
所属していません StackOverflow