使用MemberData将xUnit测试用例转换为nUnit

使用MemberData将xUnit测试用例转换为nUnit,nunit,xunit,Nunit,Xunit,假设我有以下使用xUnit编写的测试用例: 公共静态IEnumerable testValues=新列表 { 新对象[]{new double?[{0.0},0.0,0.0}, }; [理论] [成员数据(名称(测试值))] public void Test1(双?[]值,双预期Q1,双预期Q3) { //测试代码 } 如何用nUnit而不是xUnit来表示相同的单元测试 注意:这里的主要问题似乎是MemberData的使用,到目前为止,我还没有找到一个nUnit等价物。在nUnit中表达这种

假设我有以下使用xUnit编写的测试用例:

公共静态IEnumerable testValues=新列表 { 新对象[]{new double?[{0.0},0.0,0.0}, }; [理论] [成员数据(名称(测试值))] public void Test1(双?[]值,双预期Q1,双预期Q3) { //测试代码 } 如何用nUnit而不是xUnit来表示相同的单元测试

注意:这里的主要问题似乎是MemberData的使用,到目前为止,我还没有找到一个nUnit等价物。在nUnit中表达这种单元测试用例的正确方式是什么?

如下:

public static IEnumerable<object[]> testValues = new List<object[]>
{
    new object[] {new double?[] {0.0}, 0.0, 0.0},
};

[TestCaseSource(nameof(testValues))]
public void Test1(double?[] values, double expectedQ1, double expectedQ3)
{
    // Test code
}
公共静态IEnumerable testValues=新列表 { 新对象[]{new double?[{0.0},0.0,0.0}, }; [TestCaseSource(名称(testValues))] public void Test1(双?[]值,双预期Q1,双预期Q3) { //测试代码 } 请注意,NUnit具有
理论属性
,但您不希望它出现在这里。在NUnit中,理论不仅仅是一个参数化测试。在决定是否需要它之前,你应该阅读文档以了解它是什么。当然,您还应该阅读
TestCaseSourceAttribute
。:-)


NUnit中允许为测试用例指定数据的其他属性包括
TestCaseAttribute
ValuesAttribute
ValueSourceAttribute
RandomAttribute
RangeAttribute
,非常感谢!TestCaseSource就是我要找的。