【问题标题】:Unit Testing WCF REST Services单元测试 WCF REST 服务
【发布时间】:2011-08-29 15:06:32
【问题描述】:

我有一个 WCF REST 服务,我想对其进行单元测试。即 - 我已经测试了所有的业务逻辑(层的完全分离),但想检查 WCF 服务是否与所有逻辑和真实数据库一样工作。

我找不到任何有用的信息。

每个方法如下所示:

[WebGet(UriTemplate = "Version?ts={ts}", ResponseFormat = System.ServiceModel.Web.WebMessageFormat.Json)]
public WCF_Response GetVersion( string ts)
{
    return new ApiVersion { 
        version = VersionManager.CurrentVersion(),
    };
}

即 - 使用 URI 模板。否则就是正常的 WCF 服务。

在我编写基于 Web 的单元测试之前,非常感谢您的帮助 :)

【问题讨论】:

    标签: c# wcf visual-studio-2010


    【解决方案1】:

    Waitin 可用于测试 Web 应用程序 - 我假设它也可用于 REST 服务。

    【讨论】:

    • 很酷的工具。不仅对这个项目有帮助:)
    • Waitin 不是用于 UI 测试自动化吗?问题是关于单元测试,不是吗? PS:我会收回我的评论。我的错,我只看了标题。看起来罗马毕竟想要一个集成测试。没有冒犯:)
    【解决方案2】:

    结帐http://www.castleproject.org/container/facilities/trunk/wcf/index.html

    我去年在一个大型 WCF 休息项目中使用它,效果很好。

    无法再访问代码库,但单元测试也使用了城堡温莎 IoC,因此我可以运行所有测试而无需外部依赖。

    它们看起来像

    Component.For<IOrder>()
         .Named("order.service")
         .ImplementedBy<Order>()
        .ActAs(new RestServiceModel()
         {
          Endpoints = new IWcfEndpoint[] { WcfEndpoint.BoundTo(new WebHttpBinding() { TransferMode=TransferMode.Streamed, MaxBufferSize=int.MaxValue,MaxReceivedMessageSize=long.MaxValue }).At(OrderUrlBase) }
         })
    

    现在服务由单元测试托管(不在 IIS 中),可以使用 OrderUrlBase Url 调用

    【讨论】:

    • 谢谢。我觉得这可能有点过头了……虽然不确定。
    • wcf 工具使 wcf 更加可口 - 无论是客户端还是服务器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2011-07-20
    • 2023-03-16
    • 2010-09-07
    相关资源
    最近更新 更多