Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NUnit通用测试夹具在参数实现通用接口时不显示_C#_Unit Testing_Generics_Nunit - Fatal编程技术网

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);
    }
}