Tests unitaires avec le HandleError
Bonsoir,
J'ai dût, récemment, mettre en place un système de logging pour des softs .net.
J'ai découvert dans la foulée la class HandleErrorAttribute que je me suis empressé d'étendre grosso modo ainsi :
Code:
1 2 3 4 5 6 7 8 9
|
public class MonHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
... // récupération de la stack et mise en forme
monlog(message);
}
} |
Jusqu'à là, pas de grande difficulté, je décore mes controlleurs ainsi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
namespace blabla.Controllers
{
[MonHandleErrorAttribute]
public class ExempleController
{
public ActionResult Index()
{
int? a = null;
int b = (int)a;
return View();
}
}
} |
Et ça passe bien dans la méthode OnException quand on tombe sur une erreur non prévu.
J'aurais souhaité poussé un peu plus la chose en me créant des tests fonctionnels d'exemples.
Seulement voilà, ceci ne fonctionne pas du tout avec ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
namespace blabla.TestsUnitaires
{
[TestClass]
public class UnitTestLog
{
[TestMethod]
public void TestLogController()
{
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = @"App.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(
fileMap, ConfigurationUserLevel.None
);
var sectionGroup = config.GetSection("system.web/customErrors") as CustomErrorsSection;
ExempleController c = new ExempleController();
c.Index();
}
}
} |
Si je me met en mode débug avec un point d'arrêt dans la méthode "OnException", ça ne rentre jamais dedans...
Des idées du pourquoi ?