0

所以 MvcContrib TestHelpers 创建以下的模拟版本

  • HttpContext
  • HttpRequest
  • HttpResponse
  • HttpSession
  • 形式
  • 临时数据
  • 请求参数
  • 应用路径
  • 路径信息

使用这种代码时在假控制器中

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

但是你会注意到他们没有创建一个假的/模拟的服务器对象。大概有一个很好的理由为什么不这样做。但是我试图删除 Server.MapPath() 方法,因为我的 SUT 中的方法使用它,当然在测试期间它返回 NULL。

TestHelpers 使用 rhino 模拟(v3.5),我也是。我知道存根方法的语法,但是如何将服务器假/模拟对象放入我的控制器中,以便我可以存根方法?

4

1 回答 1

0

HttpServerUtility 类是密封的,但 Microsoft 提供了一个抽象的 HttpServerUtilityBase 可用于模拟(以及 MVCContrib 使用的)。Simon 的问题是由于 MVCContrib 中的一个错误造成的。请参阅:尝试使用 MvcContrib 测试助手和 Rhino Mocks 3.5 存根 Server.MapPath 以获得解决方案。

于 2010-07-15T13:29:08.550 回答