Wie man ControllerContext mit Erweiterungsmethoden verspottetC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie man ControllerContext mit Erweiterungsmethoden verspottet

Post by Anonymous »

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!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post