Como faço para testar a unidade de um método controlador que tem o atributo [Authorize] aplicado?

Eu pesquisei stackoverflow e pesquisei por quatro horas e ainda não encontrei nenhuma solução para o meu problema "trivial".

Se você escrever teste de unidade para o seu filtro[Authorize] ActionResult, como você resolve o problema para fingir que o usuário está autenticado?

Eu tenho muitosActionResult métodos que são filtrados com[Authorize] e eu quero testar todos os meusActionResult métodos, independentemente se eles são filtrados com[Authorize] ou não.

Um exemplo simples do que eu quero dizer:

[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 agora os testes nem sequer atingem o método ActionResult por causa do filtro [Authorize], a exceção é:System.NullReferenceException: Object reference not set to an instance of an object.

questionAnswers(1)

yourAnswerToTheQuestion