1
너무 많은 세그먼트로 테스트 경로를 테스트하는 유닛 테스트가 있지만 테스트 코드는 Response Status Code
(404 코드를 반환해야 함)까지 확장하고 싶습니다.유닛 테스팅 MVC4 응답 상태 코드
조롱당한 httpContext를 사용하고 상태 코드를 확인할 수 있습니까?
HttpContextMock.Object.Response.StatusCode
은 0을 반환합니다 (모의로 인해 HttpContext
의 일부만 비웃음).
[TestMethod]
public void RouteWithTooManySegments()
{
var routes = new RouteCollection();
MyApp.RouteConfig.RegisterRoutes(routes);
var httpContextMock = new Mock<HttpContextBase>();
var httpResponseMock = new Mock<HttpResponseBase>();
httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath)
.Returns("~/dawd/dawdaw/dawdaw/daw");
RouteData routeData = routes.GetRouteData(httpContextMock.Object);
Assert.IsNull(routeData);
}
"404"보기와 적절한 Response Status Code
돌아 ErrorController
사용 :
public class ErrorController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult NotFound()
{
Response.StatusCode = 404;
return View();
}
}
및 Web.Config
규칙을
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
</httpErrors>
예 웹 통합 테스트의 방향에 대해 더 많이 생각하고있었습니다. – netdis