我想对一系列不同的输入(复杂对象)进行多次测试。使用 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) 重命名变量更容易。