【发布时间】:2021-03-26 19:04:29
【问题描述】:
我正在尝试按照此答案将 NUnit 与 Generic TestCase 一起使用: NUnit TestCase with Generics 来自@György Kőszeg。
但是,由于我的测试,我需要使用带有复杂类型的where constraint(类),否则the compiler erros with error CS0314。
[TestCase(typeof(SomeClass))]
[TestCase(typeof(SomeOtherClass))]
public void GenericTest<T>(T instance) where T : ISomeInterface
{
Console.WriteLine(instance);
}
SomeClass 和 SomeOtherClass 是实现 ISomeInterface 的有效类。
这确实会失败并出现以下错误:
加载测试时引发异常。 System.ArgumentException: GenericArguments[0], 'System.RuntimeType', on '[...]GenericTestT' 违反了类型 'ISomeInterface' 的约束。
我无法让它工作。如果我将其更改为 nameof(SomeClass) 以尝试使用字符串值,我会得到与 String 不匹配约束相同的错误。
【问题讨论】:
标签: c# unit-testing generics nunit testcase