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

时间:2017-08-01 05:40:09

标签: nunit xunit

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

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

[Theory]
[MemberData(nameof(testValues))]
public void Test1(double?[] values, double expectedQ1, double expectedQ3)
{
    // Test code
}

如何在nUnit中代替xUnit表示相同的单元测试?

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

1 个答案:

答案 0 :(得分:5)

像这样:

x.cars.map(item => {
   return(
       item.image[0].url; // this is wrong
   );
});

请注意,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 } 但你不想在这里。在NUnit中,理论不仅仅是参数化测试。在决定是否需要之前,您应该阅读文档以了解它是什么。当然,您也应该阅读TheoryAttribute。 : - )

NUnit中允许为测试用例指定数据的其他属性包括TestCaseSourceAttributeTestCaseAttributeValuesAttributeValueSourceAttributeRandomAttribute