, 당신은 RequestContext
이 필요합니다. 기능을 만들려면 RequestContext
HttpContextBase
및 RouteData
이 필요합니다. 두 번째 인 RouteData
은 직접 작성해야합니다. HttpContextBase
, 모의해야합니다.
그 때문에 Scott H 's MvcMockHelpers을 살펴 보시기 바랍니다. 그 부분은 약간 오래된 것이지만이 특정 테스트에는 충분하다고 생각합니다. 실제로 필요한 것은 FakeHttpContext
메소드와 그 의존성입니다. 당신이 라이브러리를 데리러가는 경우에, 당신의 코드가 같은 것을 보일 것이다 : 나는 당신이하지만 내가 아는 한, MvcContrib TestHelper
프로젝트를 사용하려는 말을 알고
[TestMethod]
public void Can_write_more_floorplans()
{
const long productID = 12345;
const int pageIndex = 10;
var httpContext = FakeHttpContext(); // From the MvcMockHelpers
var routeData = new RouteData();
var requestContext = new RequestContext(httpContext, routeData);
var urlHelper = new UrlHelper(requestContext);
string floorplans = MoreFloorplans(urlHelper, productID, pageIndex);
Assert.AreEqual(some_string, floorplans);
}
을, 해당 라이브러리는 모든 테스트에 관한 것입니다 컨트롤러. 낮은 수준의 구성 요소를 테스트 할만큼 충분히 세분화 된 것인지 확실하지 않습니다. 당신은 어쨌든 거기에 모든 것을 정말로 필요로하지 않습니다. 필요한 것은 RequestContext
입니다.
감사합니다. – fregas