Question

J'ai vu ce post, mais je suis en quelque sorte confus par ce dernier.

Comment puis-je moquer la routine ErrorSignal de Elmah

Je regarde l'option 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);
}

}

Je suis un peu confus mais par le fait que cela ne semble pas implémenter une interface et je ne suis pas vraiment sûr pourquoi il semble être en place pour une sorte d'héritage.

Merci

Était-ce utile?

La solution

L'idée ici est que vous utilisez la classe ErrorSignaler dans votre code pour signaler une erreur au lieu d'invoquer Elmah directement. Lors de l'exécution de votre code dans les tests unitaires, parce que HttpContext.Current est nulle, le composant Elmah ne sera pas utilisé, et il n'y aura pas d'exceptions de référence null.

Vous pouvez également créer une interface ErrorSignaler:

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

De cette façon, la mise en œuvre utilisée pour la mise en œuvre IErrorSignaler peut être moqué dans les tests unitaires, si nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top