C# NUnit通用测试夹具在参数实现通用接口时不显示
我有一个定义如下的接口:C# NUnit通用测试夹具在参数实现通用接口时不显示,c#,unit-testing,generics,nunit,C#,Unit Testing,Generics,Nunit,我有一个定义如下的接口: public interface ITaskGenerator<T> where T : ITaskRequest { int CreateTask(T request); } 但是,这不会显示在测试资源管理器中。如果我将接口设置为非泛型的,它会这样做 有人知道这方面的工作吗,或者我还缺少什么。我想这是因为ITaskGenerator是一个通用接口,但我可能错了。试试这个: [TestFixture(typeof(OrderTaskGenerato
public interface ITaskGenerator<T> where T : ITaskRequest
{
int CreateTask(T request);
}
但是,这不会显示在测试资源管理器中。如果我将接口设置为非泛型的,它会这样做
有人知道这方面的工作吗,或者我还缺少什么。我想这是因为ITaskGenerator是一个通用接口,但我可能错了。试试这个:
[TestFixture(typeof(OrderTaskGenerator), typeof(OrderTaskRequest))]
public class TaskGeneratorContractTest<T, TRequest> where T : ITaskGenerator<TRequest>, new() where TRequest : ITaskRequest
{
private T _sut;
public TaskGeneratorContractTest()
{
_sut = new T();
}
[Test]
public void CreateTask_Returns_InvalidException_If_Task_ID_Is_Empty()
{
Assert.IsTrue(true);
}
}
[TestFixture(typeof(OrderTaskGenerator)、typeof(OrderTaskRequest))]
公共类TaskGeneratorContractTest,其中T:ITaskGenerator,new(),其中TRequest:ITaskRequest
{
私人T_sut;
公共任务生成器ContractTest()
{
_sut=新的T();
}
[测试]
如果任务ID为空,则public void CreateTask返回无效异常
{
Assert.IsTrue(真);
}
}
很有魅力!谢谢。我尝试了与此类似的方法,但我认为我没有使用泛型类型,而是使用了where T:ITaskGenerator
。
[TestFixture(typeof(OrderTaskGenerator))]
public class ITaskGeneratorContract<T> where T : ITaskGenerator<ITaskRequest>, new()
{
[Test]
public void CreateTask_Returns_InvalidException_If_Task_ID_Is_Empty()
{
// Test goes here
}
}
[TestFixture(typeof(OrderTaskGenerator), typeof(OrderTaskRequest))]
public class TaskGeneratorContractTest<T, TRequest> where T : ITaskGenerator<TRequest>, new() where TRequest : ITaskRequest
{
private T _sut;
public TaskGeneratorContractTest()
{
_sut = new T();
}
[Test]
public void CreateTask_Returns_InvalidException_If_Task_ID_Is_Empty()
{
Assert.IsTrue(true);
}
}