我如何在 nunit 测试用例中使用元组?
How can I use tuples in nunit TestCases?
我正在尝试使用元组指定 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
项代表一组传递给测试方法的参数。在你的情况下,它是一个两个元组,所以你应该 return 每次传递给它们的数组 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
属性只支持常量值
我正在尝试使用元组指定 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
项代表一组传递给测试方法的参数。在你的情况下,它是一个两个元组,所以你应该 return 每次传递给它们的数组 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
属性只支持常量值