初始化 NUnit 'TestCase' 属性中的参数

Initializing the argument in NUnit 'TestCase' attribute

我没有在他们的文档中看到这个,但我想做这样的测试:

[TestFixture]
public class SampleModel
{
    // stuff

    [TestCase(new DBContext(), 502)]
    public IQueryable<SomeModel> GetPrograms(DBContext dbContext, int? programId)
    {
        // Assert stuff
    }
}

是否可以在 TestCase 属性中初始化参数?

不,这对于 TestCase 属性是不可能的。 C# 属性只接受常量参数。

但这可以通过 TestCaseSource 属性实现:

[TestFixture]
public class SampleModel
{
    // stuff

    static object [] GetProgramsCases {
        new object[] { new DBContext(), 502 }
    };


    [TestCaseSource("GetProgramsCases")]
    public IQueryable<SomeModel> GetPrograms(DBContext dbContext, int? programId)
    {
        // Assert stuff
    }
}