我有这个方法:
public static int Add(List<int> numbers)
{
if (numbers == null || numbers.Count == 0)
return 0;
if (numbers.Count == 1)
return numbers[0];
throw new NotImplementedException();
}
这是我的测试代码,但它不喜欢 TestCase 中的 new List<int> {1}
:
[TestCase(new List<int>{1}, 1)]
public void Add_WithOneNumber_ReturnsNumber(List<int> numbers)
{
var result = CalculatorLibrary.CalculatorFunctions.Add(numbers);
Assert.AreEqual(1, result);
}
它给了我这个错误:
一个属性参数必须是常量表达式、typeof表达式或属性参数类型的数组创建表达式
我是不是要像这样做:
[Test]
public void Add_WithOneNumber_ReturnsNumber()
{
var result = CalculatorLibrary.CalculatorFunctions.Add(new List<int>{7});
Assert.AreEqual(7, result);
var result2 = CalculatorLibrary.CalculatorFunctions.Add(new List<int> {3});
Assert.AreEqual(4,result2);
}
TestCaseSource
而不是TestCase
。http://www.nunit.org/index.php?p=testCaseSource&r=2.5 - Preston Guillot