OneTimeSetUp 的空引用类型
Null Reference Type with OneTimeSetUp
可以使用
<Nullable>enable</Nullable>
在 nunit 开发的项目中,使用了在 OneTimeSetup 中初始化的字段,但没有获取
“警告 CS8618:不可为 null 的字段‘...’在退出构造函数时必须包含非 null 值。考虑将该字段声明为可为 null。”。
我希望为我在 OneTimeSetup 中初始化的字段添加 [NotNull] 之类的注释,但没有成功。
一种(有点不愉快!)方法是使用 null 宽容运算符:
private string _setInOneTimeSetUp = null!;
[OneTimeSetUp]
public void OneTimeSetUp()
{
_setInOneTimeSetUp = "value used in tests";
}
这与 <Nullable>enable</Nullable>
和 <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
一起编译。考虑到 NUnit 总是会先调用 OneTimeSetUp
,这在逻辑上是安全的,但是任何时候使用 null 宽容运算符都会有点代码味道。
可以使用
<Nullable>enable</Nullable>
在 nunit 开发的项目中,使用了在 OneTimeSetup 中初始化的字段,但没有获取 “警告 CS8618:不可为 null 的字段‘...’在退出构造函数时必须包含非 null 值。考虑将该字段声明为可为 null。”。
我希望为我在 OneTimeSetup 中初始化的字段添加 [NotNull] 之类的注释,但没有成功。
一种(有点不愉快!)方法是使用 null 宽容运算符:
private string _setInOneTimeSetUp = null!;
[OneTimeSetUp]
public void OneTimeSetUp()
{
_setInOneTimeSetUp = "value used in tests";
}
这与 <Nullable>enable</Nullable>
和 <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
一起编译。考虑到 NUnit 总是会先调用 OneTimeSetUp
,这在逻辑上是安全的,但是任何时候使用 null 宽容运算符都会有点代码味道。