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!
Ich schreibe einen Unit -Test für die folgende Methode: < /p>
[code]public sealed class AjaxChildActionAttribute : ActionMethodSelectorAttribute
{
public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo)
{
return controllerContext.RequestContext.HttpContext.Request.IsAjaxRequest() || controllerContext.IsChildAction;
}
}
[/code]
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]// 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);
[/code]
Jede Anleitung wäre sehr geschätzt!