我正在使用MvcContrib-TestHelper来测试我的应用上的路由。我有一个仅限HTTP POST的操作:
public TestController { [HttpPost] public ActionResult Example() { return View(); } }
以下是一个应该失败的测试示例:
[TestFixture] public class RoutingTests { [TestFixtureSetUp] public void TestFixtureSetUp() { RouteTable.Routes.Clear(); Application.RegisterRoutes(RouteTable.Routes); } [Test] public void TestWithGet() { var route = "~/Test/Example".WithMethod(HttpVerbs.Get); route.ShouldMapTo(r => r.Example()); } }
然而,测试通过了!我已经看到了另一个未解决的问题(对不起,错误的链接),这也引发了这个问题,似乎功能被打破了。有什么更好的方法来测试这条路线只能通过POST访问?
答案 0 :(得分:2)
看起来你只是想在那里测试ASP.NET MVC框架。我不认为这样的测试会带来价值......
答案 1 :(得分:1)
使用此代码:
var controller = new HomeController();
var methodInfo = controller.GetType().GetMethod("MrthodName");
var attributes = methodInfo.GetCustomAttributes(typeof(ActionMethodSelectorAttribute), true).Cast<ActionMethodSelectorAttribute>().ToList();
属性 - 这是列表接受动词