C# 第三方API的单元测试

C# 第三方API的单元测试,c#,api,unit-testing,mocking,C#,Api,Unit Testing,Mocking,我们使用第三方API,并构建了在供应商环境中运行的DLL。我们如何测试这些DLL。API接口非常深入,一个dll引用另一个dll,另一个dll引用另一个dll,依此类推,我们使用了大量的这些接口对象。这些基本上不能在供应商环境之外运行 这真的很不稳定吗?或者任何人都有在C#环境中模拟类似供应商接口的经验。我建议尽可能将它们包装在简化的外观中,并模拟从外观创建的接口。不过,这取决于具体情况,这可能相当困难。我建议尽可能将它们包装在简化的外观中,并模拟从外观创建的接口。这取决于情况,这可能是相当困难

我们使用第三方API,并构建了在供应商环境中运行的DLL。我们如何测试这些DLL。API接口非常深入,一个dll引用另一个dll,另一个dll引用另一个dll,依此类推,我们使用了大量的这些接口对象。这些基本上不能在供应商环境之外运行


这真的很不稳定吗?或者任何人都有在C#环境中模拟类似供应商接口的经验。

我建议尽可能将它们包装在简化的外观中,并模拟从外观创建的接口。不过,这取决于具体情况,这可能相当困难。

我建议尽可能将它们包装在简化的外观中,并模拟从外观创建的接口。这取决于情况,这可能是相当困难的。

< P>我会考虑两种方式:

  • 从特定服务中提取并实现逻辑和服务客户端之间的另一层。然后模拟该层并通过测试覆盖代码。这可能相当复杂
  • 如果第三方API客户机是使用接口或抽象类交付的(并且您的代码不使用特定的实现),则可以为客户机创建一个工厂,该工厂将返回其接口并模拟该工厂。它将允许您避免引入备用层

  • 我会考虑两种方式:

  • 从特定服务中提取并实现逻辑和服务客户端之间的另一层。然后模拟该层并通过测试覆盖代码。这可能相当复杂
  • 如果第三方API客户机是使用接口或抽象类交付的(并且您的代码不使用特定的实现),则可以为客户机创建一个工厂,该工厂将返回其接口并模拟该工厂。它将允许您避免引入备用层

  • 在这种情况下,最好在供应商代码和特定领域代码之间创建抽象级别。然后您可以模拟该级别并测试特定于域的代码。在这种情况下,最好在供应商代码和特定于域的代码之间创建抽象级别。然后可以模拟该级别并测试特定于域的代码。