Asp.net mvc 使用MvcContrib TestHelper时使用/Mocking Request.Url

Asp.net mvc 使用MvcContrib TestHelper时使用/Mocking Request.Url,asp.net-mvc,unit-testing,tdd,mvccontrib,Asp.net Mvc,Unit Testing,Tdd,Mvccontrib,我正在使用MvcContrib.TestHelper,并按如下方式初始化控制器: var accountController = new AccountController(); var builder = new TestControllerBuilder(); builder.InitializeController(accountController); 我的问题是,在我的AccountController中,我有: Request.Url.GetLeftPart(UriPartial

我正在使用MvcContrib.TestHelper,并按如下方式初始化控制器:

var accountController = new AccountController();

var builder = new TestControllerBuilder();
builder.InitializeController(accountController);
我的问题是,在我的
AccountController
中,我有:

Request.Url.GetLeftPart(UriPartial.Authority);
但是,它返回为null。请求是一个代理


我如何从单元测试中设置它呢?

这可能已经解决了,但对我有效的是使用模拟框架(比如:

var contextMock=MockRepository.GenerateMock();
Expect(x=>x.Request).Return(新的FakeHttpRequest(“某些相对URL”),新的Uri(“http://to.somewhere.com“”,新Uri(“”)http://from.somewhere.com")));
controller.ControllerContext.HttpContext=contextMock;
var contextMock = MockRepository.GenerateMock<HttpContextBase>();
contextMock.Expect(x => x.Request).Return(new FakeHttpRequest("SOME_RELATIVE_URL", new Uri("http://to.somewhere.com"), new Uri("http://from.somewhere.com")));

controller.ControllerContext.HttpContext = contextMock;