我试图使用元组指定nUnit的测试用例,但在VisualStudio中出现编译器错误。
以下简单示例演示了我的尝试:
[TestCase((1, 2), (3, 5))]
public void TestRangeOverlaps((int start, int end) firstRange, (int start, int end) secondRange)
{
}
如果这是可能的,我还缺少什么?
我试图使用元组指定nUnit的测试用例,但在VisualStudio中出现编译器错误。
以下简单示例演示了我的尝试:
[TestCase((1, 2), (3, 5))]
public void TestRangeOverlaps((int start, int end) firstRange, (int start, int end) secondRange)
{
}
如果这是可能的,我还缺少什么?
TestCaseSource
属性,并指定IEnumerable<(int, int)[]>
作为值源。IEnumerable
项代表传递给测试方法的一组参数。在你的情况下,它是两个元组,因此,您每次应该返回它们的数组以通过TestRangeOverlaps
。[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) };
}
}
TestCase
属性仅支持常量值。