TestCaseSource 产生 IDE0052 警告。如何避免?
TestCaseSource produces a IDE0052 warning. How to avoid it?
我想用复杂对象的不同输入列表做几个测试。使用 NUnit,我执行以下操作:
private static readonly IEnumerable<object> InputList = new List<object>
{
new { aaa = 1, bbb = 2}, // Simplified example
new { aaa = 1, bbb = 2},
new { aaa = 1, bbb = 2},
};
[Test, TestCaseSource("InputList")]
public void Test(object testElement)
{
// Whatever
}
但是,这样我会收到警告:IDE0052: Private memeber InputList can be removed as the value assigned to it is never read
,这很清楚,因为 TestCaseSource
使用 InputList
作为字符串,而不是实际引用。
我是否必须取消警告或者我做错了什么?
写
[Test, TestCaseSource(nameof(InputList))]
public void Test(object testElement)
{
// Whatever
}
编译器将用变量名替换nameof
表达式。这有几个优点:1)编译器识别对变量的引用(并且警告将被删除)2)在编译期间拼错变量名时你会意识到3)重命名变量更容易。
我想用复杂对象的不同输入列表做几个测试。使用 NUnit,我执行以下操作:
private static readonly IEnumerable<object> InputList = new List<object>
{
new { aaa = 1, bbb = 2}, // Simplified example
new { aaa = 1, bbb = 2},
new { aaa = 1, bbb = 2},
};
[Test, TestCaseSource("InputList")]
public void Test(object testElement)
{
// Whatever
}
但是,这样我会收到警告:IDE0052: Private memeber InputList can be removed as the value assigned to it is never read
,这很清楚,因为 TestCaseSource
使用 InputList
作为字符串,而不是实际引用。
我是否必须取消警告或者我做错了什么?
写
[Test, TestCaseSource(nameof(InputList))]
public void Test(object testElement)
{
// Whatever
}
编译器将用变量名替换nameof
表达式。这有几个优点:1)编译器识别对变量的引用(并且警告将被删除)2)在编译期间拼错变量名时你会意识到3)重命名变量更容易。