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