testing - c# 如何从配置文件中选择测试或产品类

标签 testing cloud

我已经构建了一个云项目一个月。我的问题是:

我有 2 个类来连接 Ibm Web 服务。第一个类是主课,第二堂课是测试课。我在配置文件中为 appSetting 设置了一个键值对。

如果配置文件中的值为“TEST”,项目将使用测试类,如果值为“PROD”,项目将使用主类。当我改变配置中的值时,我不会改变所有地方。

我的经理建议我使用“接口(interface)”,但我不明白。

我怎样才能基本解决这个问题?

最佳答案

您的测试类和产品类都可以实现上述接口(interface)。如果您需要使用在配置文件中选择要使用哪个类的方法,您最好创建一个返回接口(interface)正确实现的数据工厂类。数据工厂读取配置文件并根据应用程序设置中的值返回实现接口(interface)的正确类。

在 C# 中执行此操作的示例(该概念在其他 oo 语言中也是相同的):

来自调用类:

SomethingFactory 工厂 = new SomethingFactory(); ISomething testOrProdObj = factory.GetCorrectImplementation(); var result = testOrProdObj.MyMethod();

在工厂类中:

公共(public)类 SomethingFactory { 公共(public) ISomething GetCorrectImplementation() { //检查 appsettings 以决定实例化和返回哪个类(TESTSomething 或 PRODSomething) } }

接口(interface)的实现

公共(public)课 TESTSomething : ISomething

公共(public)课 PRODSomething : ISomething

关于testing - c# 如何从配置文件中选择测试或产品类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14099955/

相关文章:

Android - 测试一个简单的 Activity 方法

javascript - 黑猩猩.js 配置

jquery - jPlayer 2.0 经过/剩余时间

sql-server - Azure SQL 自动化存储过程

windows - 如何验证使用 CSPack Azure SDK 工具创建的 .cssx 文件?

ruby-on-rails-3 - Rails3 + Rspec2 : undefined method `authenticate!' for nil:NilClass

c# - 使用 Nunit 3.x 的参数化测试

angularjs - 如何修改 Protractor html 屏幕截图报告器以显示每个 “expect”(断言)而不是规范文件中每个 “it” block 的报告

azure - Windows Azure 云服务 : recover lost source code

oracle - 在 OCI 中设置 Oracle VM 实例和 rDNS 的静态 IP