首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MvcContrib TestHelper Fluent路由测试和特定HttpVerbs的问题

MvcContrib TestHelper Fluent路由测试和特定HttpVerbs的问题
EN

Stack Overflow用户
提问于 2010-11-11 17:17:12
回答 1查看 397关注 0票数 2

我正在尝试使用MvcContrib TestHelper fluent路由测试API,但我看到了一些奇怪的行为。.WithMethod(HttpVerb)扩展方法似乎没有像预期的那样执行。下面是我的控制器显示(2)接受不同HttpVerbs的操作(同名):

代码语言:javascript
复制
[HttpGet]
public ActionResult IdentifyUser()
{
    return View(new IdentifyUserViewModel());
}

[HttpPost]
public ActionResult IdentifyUser(IdentifyUserInputModel model)
{
    return null;
}

下面是应该映射到带有HttpPost属性的操作的测试:

代码语言:javascript
复制
MvcApplication.RegisterRoutes(RouteTable.Routes);

var routeData = "~/public/registration/useridentification/identifyuser"
    .WithMethod(HttpVerbs.Post)
    .ShouldMapTo<UserIdentificationController>(x => x.IdentifyUser(null));

即使POST HttpVerb是在我的测试中指定的,它总是路由到HttpGet方法。我甚至可以在我的控制器中注释掉接受HttpPost的动作,并且仍然可以通过测试!

这里有什么东西我遗漏了吗?

EN

回答 1

Stack Overflow用户

发布于 2010-11-11 22:39:09

这可能与你如何注册路线有关。我通常创建一个只做这个的类。因此,在进行上述测试之前,我要确保适当地设置测试夹具。

代码语言:javascript
复制
[TestFixtureSetUp]
public void TestFixtureSetUp()
{
    RouteTable.Routes.Clear();
    new RouteConfigurator().RegisterRoutes(RouteTable.Routes);
}

我的猜测是,由于RouteTable静态地处理它们,您可能会遇到问题,方法是不添加、不清除,或者在每次测试运行时添加太多的路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4157161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档