我注册了 2 条路线,如下:
routes.MapRoute("GetAnEmail", "{controller}", new { controller = "Home", action = "GetAnEmail" }, new { httpMethod = new HttpMethodConstraint("POST") })
routes.MapRoute("Home", "{controller}/{action}", new { controller = "Home", action = "Index" })
我对家庭 Controller 进行了有效的单元测试,如下所示:
[Test]
public void CanVerifyRouteMaps()
{
"~/".Route().ShouldMapTo<HomeController>(x => x.Index());
}
我知道 GetAnEmail 可以工作,但是一个单元如何测试 POSTed 路由?
最佳答案
Gratzy 的答案很接近,但向我展示的只是如何通过代码进行 POST。
我认为Stephen Walther's blog post中暗示了解决方案。我真的在这里测试我的路线约束,这是关键。 Stephen 在他的示例中创建了一个假的 httpContext。我将尝试使用 Rhino Mocks 进行此操作,一旦我有了一个有效的示例,我就会回复。如果有人已经使用 Rhino Mock 或 Moq 完成了此操作,请也发帖。
关于asp.net-mvc - 对 POST 的 MVC 路由进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/994346/