【问题标题】:Unit test error to API that call an external web service调用外部 Web 服务的 API 的单元测试错误
【发布时间】:2018-07-02 13:09:16
【问题描述】:

开发一个 WCF Web API,所有功能都通过了测试,但其中一个单元测试功能出现了问题。这是详细信息。

WCF 服务中的类调用外部 SOAP Web 服务。 SOAP 服务工作正常,所有 APT 测试都与 WCF 成功。但是,针对此类运行单元测试时出现异常“System.ServiceModel.Security.SecurityNegotiationException”,并显示错误消息“无法为 SSL/TLS 建立具有权限‘external-service-url’的安全通道。”。单元测试和 API 测试在同一台机器上,与外部服务的连接是 https,不需要客户端证书。为什么API测试调用外部服务成功但单元测试失败?

任何人都可以说出问题所在并帮助我朝着正确的方向解决问题吗?

【问题讨论】:

  • 没有更多信息很难说。通常,单元测试应该隔离它们的依赖关系。这意味着您的单元测试不应调用实际的外部端点。它应该改为调用模型。在一个完美的世界里,你的类甚至不知道外部端点,只知道它的接口,你的应用程序使用依赖注入来提供生产中的真实 api,以及用于单元测试的假 api。
  • @GuillaumeCR,在一个完美的世界中,您将只模拟使测试变慢的依赖项。由于我们处于一个完美的世界中,另一个服务器设置和调用将花费几毫秒,您不需要模拟任何东西;)。

标签: c# api unit-testing


【解决方案1】:

实际上,单元测试就是测试依赖是外部服务的服务功能。

API 和单元测试在同一个解决方案中并在同一个本地工作站中运行,我只是无法理解 API 如何完美运行而没有问题到达外部服务但是当单元测试此功能时没有通过接口到达 API ,外部拒绝连接。我需要了解这个区别在哪里可以阻止相同的功能进行连接。有人看到过类似的问题吗?

【讨论】:

    猜你喜欢
    • 2021-10-27
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2011-12-30
    • 2011-02-03
    • 1970-01-01
    • 2012-05-29
    • 2017-08-17
    相关资源
    最近更新 更多