【问题标题】:Route testing with WebApiContrib使用 WebApiContrib 进行路由测试
【发布时间】:2013-06-14 02:30:34
【问题描述】:

我有一个正在尝试测试的 WebApi 项目。我有一个控制器 -

public class UserController : ApiController
{
    public string Get()
    {
        return "foo";
    }
}

我需要测试路由,我正在尝试使用WebApiContrib.Testing 包。

现在,我的问题是,在注册路由时,我使用 GlobalConfiguration.Configuration.Routes,它的类型为 HttpRouteCollection

在我的测试中,我可以访问RouteTable.Routes,但这是RouteCollection 类型。

因此,由于这种类型不兼容,我无法在我的测试中注册 WebApi 路由。

以前有人遇到过这个问题吗?我有什么明显的遗漏吗?

【问题讨论】:

    标签: c# asp.net-web-api asp.net-routing web-api-contrib


    【解决方案1】:

    我通过以下方式解决了这个问题:

    WebApiConfig.Register( GlobalConfiguration.Configuration );
    

    TestFixtureSetup

    【讨论】:

    • 这可以正常工作,直到您有两个需要注册配置的测试夹具;)您知道如何“取消注册”或“处置”之前的注册吗?
    • 您只需在调用WebApiConfig.Register( GlobalConfiguration.Configuration ) 之前先调用GlobalConfiguration.Configuration.Routes.Clear(),以避免路由被多次映射。
    • 这使得基于 Get 的测试工作,但我对 POST 等没有任何乐趣 - 谁能提供任何见解?详情在这里 - stackoverflow.com/questions/18377365/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    相关资源
    最近更新 更多