我正在尝试使用元组指定 nUnit 测试用例,但我在 VisualStudio 中遇到编译器错误。
这个简单的例子演示了我正在尝试做的事情:
[TestCase((1, 2), (3, 5))]
public void TestRangeOverlaps((int start, int end) firstRange, (int start, int end) secondRange)
{
}
如果这是可能的,我错过了什么?
最佳答案
您可以使用 TestCaseSource
属性并指定 IEnumerable<(int, int)[]>
为值(value)来源。
每个 IEnumerable
item 表示传递给测试方法的一组参数。在您的情况下,它是两个元组,因此您应该每次都返回一个数组以传递给 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
属性只支持常量值
关于c# - 我如何在 nunit 测试用例中使用元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61910839/