1

我正在使用 MvcContrib-TestHelper 来测试我的应用程序上的路由。我有一个仅限于 HTTP POST 的操作:

公共测试控制器
{
    [HttpPost]
    公共动作结果示例()
    {
        返回视图();
    }
}

这是一个应该失败的测试示例:

[测试夹具]
公共类路由测试
{
    [TestFixtureSetUp]
    公共无效TestFixtureSetUp()
    {
        RouteTable.Routes.Clear();
        Application.RegisterRoutes(RouteTable.Routes);
    }

    [测试]
    公共无效TestWithGet()
    {
        var route = "~/Test/Example".WithMethod(HttpVerbs.Get);
        route.ShouldMapTo(r => r.Example());
    }
}

但是,测试通过了!我还看到了另一个未回答的问题(对不起,错误的链接),其中也提出了这个问题,而且似乎功能被破坏了。测试这条路线是否只能通过 POST 访问的更好方法是什么?

4

2 回答 2

2

看起来您只是想在那里测试 ASP.NET MVC 框架。我不认为这样的测试会带来价值......

于 2012-12-20T13:59:26.683 回答
1

使用此代码:

var controller = new HomeController();
var methodInfo = controller.GetType().GetMethod("MrthodName");
var attributes = methodInfo.GetCustomAttributes(typeof(ActionMethodSelectorAttribute), true).Cast<ActionMethodSelectorAttribute>().ToList();

属性 - 这是列表接受动词

于 2012-12-20T14:33:23.557 回答