MSTest提供了一个[ClassInitialize]
属性,可以放置在一个static
方法上,以提供一次性初始化。
假设我有一个测试类中的静态成员,我希望在这个 [ClassInitialize]
方法中进行初始化。如何标记它不可为空?
例如,考虑以下代码:
private static Database _database;
[ClassInitialize]
public static void InitializeClass(TestContext testContext)
{
_database = new Database();
}
使用#nullable enable
,我会得到一个非常易懂的警告:CS8618 在退出构造函数时,非可空字段“_database”必须包含非空值。考虑将该字段声明为可空。
我可以将初始化移动到构造函数中(但这样每个测试方法都会发生)。我可以使用null-forgiving operator(!
)。是否有更好的选项来标记_database
不为空?
new Database()
永远不会失败,请考虑在静态构造函数中设置它。 - Rikki Gibson