Я видел ту же самую проблему в этой записи , но ни одно из решений не работает сейчас в ASP. Net Core 2.2. Когда я отлаживаю модульный тест, свойство Response по-прежнему равно нулю, и поэтому тест не пройден. Я читал основные документы asp. net, чтобы узнать, как имитировать ControllerContext
, чтобы свойство Response имело значение, но я не смог найти ничего работающего.
Вот строка внутри действия, которое создает проблемы:
Response.Headers.Add("Access-Control-Expose-Headers", "Content-Range");
Итак, что я закончил в модульном тесте:
var routeData = new RouteData();
routeData.Values.Add("controller", "Home");
var headerDictionary = new HeaderDictionary();
var response = new Mock<HttpResponse>();
response.SetupGet(r => r.Headers).Returns(headerDictionary);
var httpContext = new Mock<HttpContext>();
httpContext.SetupGet(a => a.Response).Returns(response.Object);
var actionContext = new ActionContext(
httpContext.Object,
routeData,
new ControllerActionDescriptor());
_controller.ControllerContext = new ControllerContext(actionContext);