我想在 [TestInitialize] 方法中初始化经常使用的变量,但我不希望为每个测试方法初始化相同的变量。有没有办法通过装饰器或类似的东西来区分测试方法?例如
[TestInitialize]
public Setup()
{
//pseudocode
if VariablesContainLetters
var1 = a; var2 = b; var3 = c;
else if VariablesContainNumbers
var4 = 1; var5 = 2; var6 = 3;
}
[TestMethod]
[VariablesContainLetters]
public method1() {}
[TestMethod]
[VariablesContainNumbers]
public method2() {}
这样我就可以为不同的测试方法初始化不同的变量?
最佳答案
这是我认为您正在努力实现的目标的示例。声明 Dictionary如果您愿意,可以将 string
替换为其他类型。 Bool、int、甚至对象。
[TestInitialize]
public Setup()
{
Dictionary<string, string> variables = new Dictionary<string, string>();
//pseudocode
if VariablesContainLetters
variables.Add("var1", "a");
variables.Add("var2", "b");
else if VariablesContainNumbers
variables.Add("var4", "1");
variables.Add("var5", "2");
}
[TestMethod]
[VariablesContainLetters]
public method1() {MessageBox.Show(variable["var1"]);} //prints "a"
[TestMethod]
[VariablesContainNumbers]
public method2() {MessageBox.Show(variable["var4"]);} //prints "1"
关于c# - .NET 单元测试 - 如何区分变量初始化的 TestMethods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513207/