我是 MVCContrib Testhelper 的新手并使用 Rhino 进行模拟。
我需要帮助对依赖于 User.Identity.Name、Server.MapPath 和表单集合的控制器进行单元测试。
我从
var controller = new SubmitController();
var builder = new TestControllerBuilder();
builder.InitializeController(controller);
我发现这篇文章用于设置 User.Identity.Name
controller.ControllerContext = TestHelper.MockControllerContext(controller).WithAuthenticatedUser("domain\\username");
此时,在我的控制器中,我现在可以访问 User.Identity。然后问题变成了我如何设置表单集合变量。环境
builder.Form.Add("testvar","1");
不再工作。看来现在我必须通过
controller.HttpContext.Request.Form.Add("testvar","1)
这似乎可行,但此时,我不再使用上面的 builder(TestControllerBuilder)。
然后我不得不模拟引发更多问题的服务器。我怎样才能继续使用构建器,但对 httpContext、HttpRequest、Server 等使用模拟或存根。我有点期待构建器有方法来设置 HttpRequest、Server 等的预期值。
谢谢