asp.net-mvc - 使用 MvcContrib TestHelper 时使用/模拟 Request.Url

标签 asp.net-mvc unit-testing tdd mvccontrib

我正在使用 MvcContrib.TestHelper,并像这样初始化我的 Controller :

var accountController = new AccountController();

var builder = new TestControllerBuilder();
builder.InitializeController(accountController);

我的问题是,在我的 AccountController 中我有:

Request.Url.GetLeftPart(UriPartial.Authority);

但是,这返回为空。请求是一个代理。

如何通过单元测试进行设置?

最佳答案

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

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;

关于asp.net-mvc - 使用 MvcContrib TestHelper 时使用/模拟 Request.Url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16095209/

相关文章:

angularjs - karma 开始 - 传递参数

ios - OCMockito stub 单例共享实例方法

c# - 具有两个操作的 Razor 输入

javascript - Window.location.href post参数到actionresult asp.net mvc

c# - MVC 为同一个 bool 属性生成两个输入字段。我该如何阻止它?

c# - RhinoMocks - 当一个方法被调用 n 次时,如何在 n - k 次调用中测试它的参数

c# - 如何在大型项目中进行单元测试

ruby-on-rails - 在测试中找不到 Rails 路由

node.js - Sequelize 模型的测试驱动开发

c# - 如何在 EF Core 中查询多对多关系