gpt4 book ai didi

c# - 在 C# 项目中存储不变变量的好方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 02:51:31 24 4
gpt4 key购买 nike

我刚学 C#,请原谅我的笨拙。

  • 我们使用 Visual Studio 2012 将 C#/Selenium 项目放在一起进行自动化测试。
  • 我们有三个信用卡处理商。

我想为每个处理器存储登录凭据、测试设置和测试支付项目。我可以在 Python 中使用字典在一分钟内完成此操作:

processorCreds = {
'ProcOne': {
'website': '[url]',
'username': '[username]',
'password': '[password]'
},
'ProcTwo': {
'website': '[url]',
'username': '[username]',
'password': '[password]'
},
}

然后我会在需要时调用它:

def openProcessor(procName):
urllib2.urlopen(processorCreds[procName]['website'])

openProcessor('ProcTwo')

基本上,我想在 C# 中使用它。我很少需要更改这些凭据,它们将用于多个测试用例,因此我希望能够在需要的任何地方提取信息。

我将这些放在一起的最佳方式是什么?我应该使用 XML 文件,还是可以在类中,或者...?

[编辑] 我看到的另一种选择是每次我们有一个测试用例时都设置变量,这似乎不是......面向对象的。或者,我想我可以将变量放在 [Processor]Portal.cs 页面上......我只是希望有一种方法可以将所有这些放在一个地方而不会大惊小怪,因为我们偶尔会“这适用于每个处理器"测试。

(此外,这完全是测试数据,现在已经可以看到它的人也可以访问,所以我不担心。)

最佳答案

.NET 提供了多种存储常量或接近常量数据的方式:您可以在多种方式中进行选择,以读取 XML 文件、配置文件、具有您自己格式的资源文件等。如果您想在代码中定义类似您的结构,可以使用 IDictionary:

internal static readonly IDictionary<string,dynamic> ProcessorCreds =
new Dictionary<string,dynamic> {
{"ProcOne", new {
Website = "[url]",
Username = "[username]",
Password = "[password]"
},
{"ProcTwo", new {
Website = "[url]",
Username = "[username]",
Password = "[password]"
}
};

这将创建一个 Dictionary 实例,它将 string 对象映射到具有三个属性的匿名对象 - WebsiteUsername密码。由于进入的对象属于匿名类(注意 new 和左大括号之间缺少类名),因此字典的值类型定义为 dynamic。这将允许您在将来添加更多属性而无需更改任何其他内容。

您可以像这样使用 ProcessorCreds:

urlopen(ProcessorCreds[procName].Website);

关于c# - 在 C# 项目中存储不变变量的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17734003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com