使用 MemberData 将 xUnit 测试用例转换为 nUnit
Converting a xUnit test case using MemberData to nUnit
假设我有以下使用 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 中表达此类单元测试用例的正确方法是什么?
像这样:
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 中,理论不仅仅是参数化测试。在决定是否需要之前,您应该阅读文档以了解它是什么。当然,您也应该阅读 TestCaseSourceAttribute
。 :-)
NUnit 中允许为测试用例指定数据的其他属性包括 TestCaseAttribute
、ValuesAttribute
、ValueSourceAttribute
、RandomAttribute
和 RangeAttribute
。
假设我有以下使用 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 中表达此类单元测试用例的正确方法是什么?
像这样:
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 中,理论不仅仅是参数化测试。在决定是否需要之前,您应该阅读文档以了解它是什么。当然,您也应该阅读 TestCaseSourceAttribute
。 :-)
NUnit 中允许为测试用例指定数据的其他属性包括 TestCaseAttribute
、ValuesAttribute
、ValueSourceAttribute
、RandomAttribute
和 RangeAttribute
。