Wie man ControllerContext mit Erweiterungsmethoden verspottet

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie man ControllerContext mit Erweiterungsmethoden verspottet

by Anonymous » 23 Apr 2025, 11:18

Ich schreibe einen Unit -Test für die folgende Methode: < /p>

Code: Select all

public sealed class AjaxChildActionAttribute : ActionMethodSelectorAttribute
{
public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo)
{
return controllerContext.RequestContext.HttpContext.Request.IsAjaxRequest() || controllerContext.IsChildAction;
}
}
Um die Methode zu testen, muss ich iSajaxRequest () und ISCHILDACTACT verspotten, um entweder true oder false zurückzugeben. Es ist jedoch schwierig, IsajaxRequest () direkt zu verspotten, da es sich um eine Erweiterungsmethode handelt.

Code: Select all

// Arrange
var mockControllerContext = new Mock();
mockControllerContext.Setup(c => c.RequestContext.HttpContext.Request.IsAjaxRequest()).Returns(true);
mockControllerContext.Setup(c => c.IsChildAction).Returns(true);
var _sut = new AjaxChildActionOnlyAttribute();

// Act
var result = _sut.IsValidForRequest(mockControllerContext.Object, null);

// Assert
Assert.True(result);
Jede Anleitung wäre sehr geschätzt!

Top