如何在 C# 中拥有动态 Nunit TestCaseSource?

How to have dynamic Nunit TestCaseSource in C#?

我想做的正是本页的第一个示例,但是...

http://nunit.org/index.php?p=testCaseSource&r=2.5

我可以改变的价值

    static object[] DivideCases =
    {
        for (int i = 0; i < qtyCmd(); i++)
        {
            new object[] { getCmd[i] },
        }
    };

qtyCmd 只是一个静态方法,return 一个数字 getCmd 在文本文件中读取一行(作为参数发送的索引)

其中数组命令。我知道数据驱动单元测试,但我被要求不要使用它。更具体地说,我被要求使用 [TestCase]

你可以把DivideCases变成一个方法:

private object[] DivideCases() {
    var amountOfSamples = qtyCmd();
    var result = new object[amountOfSamples];

    for (var i = 0; i < amountOfSamples; i++) {
        result[i] = new object[] {getCmd[i]};
    }

    return result;
}

然后与TestCaseSource一起使用:

[Test, TestCaseSource("DivideCases")]
public void TestMethod(object[] samples) {
    // Your test here.
}