Ich verwende Moq für Komponententests und möchte das Attribut einer Ansicht testen. In diesem Fall das Autorize-Attribut.Komponententest für ein Ansichtsattribut mit Moq
Beispiel Codes anzeigen:
[Authorize(Roles = "UserAdmin")]
public virtual ActionResult AddUser()
{
// view logic here
return View();
}
So würde Ich mag die Ansicht Attribut testen, wenn ich auf dieser Ansicht mit einem Benutzer handeln, der in der Rolle des Admin ist und ein Benutzer, der nicht in der Rolle von Benutzer admin. Gibt es das überhaupt, um das zu tun?
Beispiel Test:
[Test]
public void Index_IsInRole_Customer()
{
// Arrange
UserAdminController controller = _controller;
rolesService.Setup(r => r.IsUserInRole(It.IsAny<string>(), It.IsAny<string>())).Returns(false); // return false for any role
// Act
var result = controller.AddUser();
// Assert
Assert.IsNotNull(result, "Result is null");
}
Ja, vielleicht sollte meine Frage gewesen sein, * sollte * ich teste die Wirkung zuschreibt. aber nette antwort danke kumpel! +1 – Gabe
Ich habe noch eine Frage ... Was passiert, wenn ich zwei Aktionen mit dem gleichen Namen habe, wenn ein GET und ein Post ist .... Wenn ich GetMethod verwende, erhalte ich einen Fehler für mehrdeutige Ergebnisse gefunden. Wie kann ich unterscheiden? – Gabe
@gmcalab: Dann müssen Sie die Überladung 'GetMethod (string, Type [])' verwenden. –