¿Cómo puedo probar en unidad un método de controlador que tiene aplicado el atributo [Autorizar]?
He buscado stackoverflow y busqué en Google cuatro horas y aún no encontré ninguna solución para mi problema "trivial".
Si escribes test unitario para tu filtrado.[Authorize] ActionResult
, ¿cómo resolver el problema para falsificar que el usuario es autenticado?
Tengo mucho deActionResult
Métodos que se filtran con[Authorize]
y quiero probar toda miActionResult
métodos independientemente si se filtran con[Authorize]
o no.
Un ejemplo simple 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 llegan al método ActionResult debido al filtro [Autorizar], la excepción lanzada es:System.NullReferenceException: Object reference not set to an instance of an object.