Mockup class를 이용한 Routing test code
URL 테스트는 Rest 및 개발에서 가장 중요한 사항중 하나인데. 테스트코드보다 직접 실행해서 한번 테스트해보는 경우가 더 많은 것 같다.;
이 code를 이용한 test code는 다음과 같이 적을 수 있다.
URL의 테스트가 꼭 필요하긴 한데.. 요즘들어 일을 이런쪽으로 전혀 안하고 있다는 아쉬움이 많이 들고 있는듯.;
URL 테스트는 Rest 및 개발에서 가장 중요한 사항중 하나인데. 테스트코드보다 직접 실행해서 한번 테스트해보는 경우가 더 많은 것 같다.;
private string GetOutboundUrl(object routeValues) { // Get route configuration and mock request context RouteCollection routes = new RouteCollection(); MvcApplication.RegisterRoutes(routes); var mockHttpContext = new Moq.Mock(); var mockRequest = new Moq.Mock (); var fakeResponse = new FakeResponse(); mockHttpContext.Setup(x => x.Request).Returns(mockRequest.Object); mockHttpContext.Setup(x => x.Response).Returns(fakeResponse); mockRequest.Setup(x => x.ApplicationPath).Returns("/"); // Generate the outbound URL var ctx = new RequestContext(mockHttpContext.Object, new RouteData()); return routes.GetVirtualPath(ctx, new RouteValueDictionary(routeValues)).VirtualPath; }
이 code를 이용한 test code는 다음과 같이 적을 수 있다.
[Test] public void Football_Page1_Is_At_Slash_Football() { Assert.AreEqual("/Football", GetOutboundUrl(new { controller = "Product", action = "List", category = "Football", page = 1 })); }
URL의 테스트가 꼭 필요하긴 한데.. 요즘들어 일을 이런쪽으로 전혀 안하고 있다는 아쉬움이 많이 들고 있는듯.;