我正在尝试使用元组指定nUnit testCases,但在Visual Studio中出现编译器错误。
这个简单的例子演示了我正在尝试做的事情:
[TestCase((1, 2), (3, 5))]
public void TestRangeOverlaps((int start, int end) firstRange, (int start, int end) secondRange)
{
}
如果可能的话,我想念什么?
您可以使用TestCaseSource
属性并将TestCaseSource
指定为值源。
每个IEnumerable<(int, int)[]>
项目代表传递给测试方法的一组参数。在您的情况下,它是两个元组,因此每次都应返回一个数组。
IEnumerable
[
[Test] [TestCaseSource(nameof(Tuples))] public void TestRangeOverlaps((int start, int end) firstRange, (int start, int end) secondRange) { } public static IEnumerable<(int, int)[]> Tuples { get { yield return new[] { (1, 2), (3, 5) }; } }
属性仅支持常数值