我知道我遗漏了一条关于静态方法的重要规则,但是如果你以后不能用它来用于不同的目的,它会是初始化的重点吗?
我有一个名为LoadValidConfig的方法和一个名为configSetup的私有成员
[TestClass]
public class ConfigControllerTest
{
private ConfigSetup configSetup;
private TestContext testContextInstance;
[ClassInitialize]
public static void LoadValidConfig(TestContext context)
{
ConfigSetup setup;
ConfigController.LoadConfig(out setup);
}
[TestMethod]
public void ConfigTest1()
{
//example test
}
}
我无法使用由ConfigController.LoadConfig()方法填充的ConfigSetup引用来访问和初始化configSetup类的静态方法。
我真的可以在这里使用一些方向。过去我曾经使用过N Unit来分别进行[setup]和[teardown]初始化和清理,但这并不像那些那样工作。
答案 0 :(得分:1)
[ClassInitialize]
在静态上下文中运行,并在运行任何测试方法之前运行 。您可能正在寻找用于实例初始化方法的[TestInitialize]
,它类似于NUnit的[Setup]
。
然后尝试在LoadConfig方法之后指定字段:
[TestInitialize]
public void LoadValidConfig()
{
ConfigSetup setup;
ConfigController.LoadConfig(out setup);
configSetup = value;
}
(或者,你可以保留ClassInitialize,如果这更适合你,并使configSetup静态)。