Ich habe eine Controller-Aktion, die prüft
this.User.Identity.IsAuthenticated
Was schlagen Sie vor, wie man Unit-Test auf eine solche Aktion zu bewältigen?
Ich habe eine Controller-Aktion, die prüft
this.User.Identity.IsAuthenticated
Was schlagen Sie vor, wie man Unit-Test auf eine solche Aktion zu bewältigen?
Ich würde vorschlagen, mocking die IsAuthenticated Eigenschaft. Es gibt eine Reihe von anderen Beiträgen auf SO über diese, Sie könnten eine Suche nach ihnen tun.
Hier ist ein Beispiel für das Mocking der Anfrage mit Moq:
var mockRequest = new Mock<HttpRequestBase>();
mockRequest.Setup(x => x.IsAuthenticated).Returns(true);
var mockContext = new Mock<ControllerContext>();
mockContext.Setup(x => x.Request).Returns(mockRequest.Object);
var myController = new MyController();
myController.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), myController);
Ich würde vorschlagen, in Scott Hanselman's allgegenwärtige "MvcMockHelpers" Code, das ist, was ich verwenden:
http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx
Aber wie würden Sie Ihre mocked HttpContext/Request injizieren? Benutzer-Eigenschaft ist Teil der Controller-Klasse und hat seinen eigenen Code, den ich nicht beeinflussen kann.
Nun gut. Jetzt hat Ihr Code die Antwort. Die Eigenschaft ControllerContext war mir nicht bekannt. Danke!
In Moq verwenden Sie SetupGet für Mocking-Eigenschaften (Setup ist nur für Mocking-Methoden)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Das ist genau die gleiche Frage: stackoverflow.com/questions/1106398/
0 Stimmen
Danke eugene... habe es vorher nicht gefunden...