C# 带泛型的NUnit 3

C# 带泛型的NUnit 3,c#,generics,testing,nunit,C#,Generics,Testing,Nunit,我在这里看到NUnit 2.5的帖子: [TestCase((int)5, "5")] [TestCase((double)2.3, "2.3")] public void TestRowTestGeneric<T>(T value, string msg) { Assert.AreEqual(value, ConvertStrToGenericParameter<T>(msg)); } [TestCase((int)5,“5”)] [测试用例((双精度)2.3,

我在这里看到NUnit 2.5的帖子:

[TestCase((int)5, "5")]
[TestCase((double)2.3, "2.3")]
public void TestRowTestGeneric<T>(T value, string msg)
{
   Assert.AreEqual(value, ConvertStrToGenericParameter<T>(msg));
}
[TestCase((int)5,“5”)]
[测试用例((双精度)2.3,“2.3”)]
public void TestRowTestGeneric(T值,字符串msg)
{
AreEqual(值,ConvertStrToGenericParameter(msg));
}
但看起来NUnit 3.0不再适用了

对于这种情况,什么是正确的方法

[Test]
[TestCase(0)]
[TestCase(FakeEnum.DefaultValue)]
public void should_expect_T_value<T>(T expectedValue)
{
   var result = DoStuff<T>();
   Assert.AreEqual(expectedValue, result);
}
[测试]
[测试用例(0)]
[TestCase(FakeEnum.DefaultValue)]
public void应该\u expected\u值(T expectedValue)
{
var结果=DoStuff();
Assert.AreEqual(期望值、结果);
}

感谢

通用参数测试在3.0中仍然可以正常工作。以下测试通过:

[Test]
// These are all "zero" values.
[TestCase(0, true)]
[TestCase(TypeCode.Empty, true)]
[TestCase(StringComparison.CurrentCulture, true)]
// These are not
[TestCase(TypeCode.Byte, false)]
[TestCase(StringComparison.InvariantCulture, false)]
public void Value_IsEquivalentTo_Zero<T>(T value, bool expectedResult)
{
    // Quick n dirty conversion of 0 to T
    T zero = (T)(object)0;
    Assert.AreEqual(expectedResult, value.Equals(zero));
}
[测试]
//这些都是“零”值。
[测试用例(0,true)]
[测试用例(TypeCode.Empty,true)]
[测试用例(StringComparison.CurrentCulture,true)]
//这些都不是
[测试用例(TypeCode.Byte,false)]
[TestCase(StringComparison.InvariantCulture,false)]
公共无效值等于零(T值,布尔期望结果)
{
//0到T的快速n脏转换
T零=(T)(对象)0;
AreEqual(expectedResult,value.Equals(零));
}

我尝试过复制和粘贴代码,测试根本无法运行。我正在使用VS2015。这和环境有关吗?可能。我在NUnit 3.0,VS2015上,使用NUnit3测试适配器3.0.7扩展来运行测试。嗨,NPras,谢谢你的帮助。说真的,我快发疯了。显然在这个阶段,我不得不用不同的方式来做,但是我仍然很好奇为什么我甚至没有运行测试或者给出任何异常消息。我刚刚创建了一个空白解决方案,目标是Framework4.5,添加了NUnit的最后一个nuget包wht NUnit3 Test Adapter 3.0.7,复制了与上面相同的测试,在运行测试时仍然不做任何事情。你知道为什么…?那肯定是个令人头痛的问题。“测试资源管理器”窗口是否拾取测试,但拒绝运行它们?另外,我已经安装了测试适配器2和3,并且在输出窗口上注意到2尝试运行测试,失败了,然后3启动了。只是在干净的安装中尝试了它,并且只安装了TestAdapter 3,仍然可以正常工作。对不起,我不知道还能是什么。。VS版本?它是干净的安装还是从RC升级的?其他扩展干扰?我的答案适用于NUnit 3.0