He buscado stackoverflow y busqué en Google un par de horas y todavía no encontré ninguna solución para mi problema "trivial".¿Cómo compruebo la unidad de un método de controlador que tiene aplicado el atributo [Autorizar]?
Si escribe la prueba de unidad para su [Authorize] ActionResult
filtrado, ¿cómo se resuelve el problema de que el usuario está autenticado?
que tienen una gran cantidad de ActionResult
métodos que se filtran con [Authorize]
y quiero probar todos mis ActionResult
métodos sin tener en cuenta si se filtran con [Authorize]
o no.
Un simple ejemplo de lo que quiero decir:
[TestMethod]
public void Create_Get_ReturnsView()
{
// Arrange
var controller = new UserController();
// Act
var result = controller.Create();
// Assert
Assert.IsNotNull(result as ViewResult);
}
[Authorize]
public ActionResult Create()
{
return View("Create");
}
A partir de ahora las pruebas ni siquiera alcanzaron el método ActionResult debido a la [Autorizar] filtro, excepción lanzada es: System.NullReferenceException: Object reference not set to an instance of an object.
Hay algo que no nos estás mostrando. La prueba que muestre no ejecutará * ningún * filtro de acción. Tal vez tengas un código que lo hará, pero no está en tu pregunta. ¿Qué tal la pila de llamadas completa para el error, para empezar? –