Я использую инфраструктуру тестирования Nunit Unit и Moq для издевательства над объектом в моем веб-приложении MVC. У меня есть «HttpContext.Current.ApplicationInstance.Response» в моем действии при тестировании этого действия, которое содержит этот код возвращает ошибку, я дразнил HttpContext уже, но я не имею понятия о насмешливый applicationInstance.Response, пожалуйста, помогите мне, ребятаMocking HttpContext.Current.ApplicationInstance.Response
public static Mock<HttpContextBase> HttpMock { get; set; }
public void HttpContextMocking(string requesturl)
{HttpMock = new Mock<HttpContextBase>();
var fakeIdentity = new GenericIdentity("[email protected]l.com");
var principal = new GenericPrincipal(fakeIdentity, null);
HttpMock.Setup(x => x.User).Returns(principal);
HttpContext.Current = new HttpContext(new HttpRequest("", requesturl, ""), new HttpResponse(null));
HttpContext.Current.User = principal;
//Mocking the Httpcontext User Identity
HttpMock.SetupGet(c => c.User.Identity.Name).Returns("[email protected]");}
подвожу ошибка в NUnit Применение в качестве объекта Null эталонным execption, в этом коде в моем источнике генерирует исключение при тестировании блока отладки
«Ответ в этом контексте недоступен». HttpContext.Current.ApplicationInstance.Response = 'HttpContext.Current.ApplicationInstance.Response' бросил исключение типа 'System.Web.HttpException'
Что это ошибка, вы получаете? – VictorySaber
HI @VictorySaber Я обновил ошибку в моем вопросе. –
Ваш лучший вариант - реорганизовать ваш код, чтобы контекст (или даже небольшая часть информации, которую вам нужно с него) был параметром, а затем передал его из чего-то, что вы не тестировали. (Вы все еще можете интегрировать тест.) Это позволит вам пройти в заглушку во время модульного тестирования. В лучшем случае ваш единичный тест сводится к простому тесту ввода/вывода. – jpmc26