J'ai cherché stackoverflow et googlé quatre heures quelques heures et toujours pas trouvé de solution pour mon problème "trivial".Comment puis-je tester une méthode de contrôleur avec l'attribut [Autoriser] appliqué?
Si vous écrivez un test unitaire pour votre [Authorize] ActionResult
filtré, comment résolvez-vous le problème pour simuler que l'utilisateur est authentifié?
J'ai beaucoup de ActionResult
méthodes qui sont filtrées avec [Authorize]
et je veux tester tous mes ActionResult
méthodes peu importe si elles sont filtrées avec [Authorize]
ou non.
Un exemple simple de ce que je veux dire:
[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 maintenant les tests ne même pas frappé la méthode ActionResult en raison de la [Authorize] filtre, exception levée est: System.NullReferenceException: Object reference not set to an instance of an object.
Il y a quelque chose que vous ne nous montrez pas. Le test que vous montrez n'exécutera * * aucun filtre d'action. Peut-être avez-vous du code qui le fera, mais ce n'est pas dans votre question. Que diriez-vous de l'ensemble de la pile d'appel pour l'erreur, pour les débutants? –