Чтобы создать UrlHelper
, вам нужен RequestContext
. Чтобы создать функционирующий RequestContext
, вам нужны HttpContextBase
и RouteData
. Второй, RouteData
, должен быть простым в построении. HttpContextBase
, вы должны издеваться.
Для этого я предлагаю вам взглянуть на MvcMockHelpers Скотта Х. Часть этого немного устарела, но я думаю, что этого достаточно для этого конкретного теста - все, что вам действительно нужно, это метод FakeHttpContext
и его зависимости. Если вы возьмете эту библиотеку, ваш код будет выглядеть примерно так:
[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);
}
Я знаю, вы говорите, что пытаетесь использовать проект MvcContrib TestHelper
, но, насколько мне известно, вся эта библиотека предназначена для тестирования контроллеров. Я не уверен, действительно ли он достаточно детализирован, чтобы протестировать низкоуровневый компонент. В любом случае вам не нужны все эти вещи; все, что вам нужно, это RequestContext
.
person
Aaronaught
schedule
19.04.2010