MvcContrib TestHelpers似乎没有提供完整的HTTPContext.Server对象

时间:2010-07-14 20:04:40

标签: rhino-mocks httpserver mvccontrib-testhelper

因此,MvcContrib TestHelpers会创建以下

的模拟版本
  • HttpContext的
  • 的HttpRequest
  • 的HttpResponse
  • 的HttpSession
  • 表格
  • TempData的
  • 查询字符串
  • ApplicationPath
  • PATHINFO
使用这种代码时,在假控制器内

var _controller = new FooController();        
var _builder = new TestControllerBuilder();
_builder.InitializeController(_controller);

但是你会注意到他们没有创建假/模拟服务器对象。据推测,有充分理由不这样做。但我正在尝试删除Server.MapPath()方法,因为我的SUT中的方法使用它,当然在测试期间它返回NULL。

TestHelpers使用rhino mocks(v3.5),我也是。我知道删除方法的语法,但是如何将 Server 伪/模拟对象放入我的控制器中,所以我可以剔除这个方法吗?

1 个答案:

答案 0 :(得分:0)

HttpServerUtility类是密封的,但Microsoft提供了一个抽象的HttpServerUtilityBase,可用于模拟(以及MVCContrib使用的)。 Simon的问题是由于MVCContrib中的一个错误。有关解决方案,请参阅:Trying to stub Server.MapPath with MvcContrib Test helpers and Rhino Mocks 3.5