Pergunta

Eu vi este post, mas estou meio confuso com isso.

Como posso zombar da rotina errônea de Elmah?

Estou olhando para a opção 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);
}

}

Estou meio confuso pelo fato de que isso não parece implementar uma interface e não sei ao certo por que parece estar em vigor para algum tipo de herança.

Obrigado

Foi útil?

Solução

A ideia aqui é que você usaria o ErrorSignaler Classe em seu código para sinalizar um erro em vez de invocar o Elmah diretamente. Ao executar seu código em testes de unidade, porque HttpContext.Current é nulo, o componente Elmah não será usado e não haverá exceções de referência nula.

Você também pode criar um ErrorSignaler interface:

public interface IErrorSignaler
{
    void SignalFromCurrentContext(Exception e);
}

Dessa forma, a implementação usada para implementar IErrorSignaler pode ser ridicularizado nos testes de unidade, se necessário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top