如何在c#中拥有动态的Nunit TestCaseSource

本文关键字:动态 Nunit TestCaseSource 拥有 | 更新日期: 2023-09-27 17:53:12

我想做的就是这个页面的第一个例子,但是…

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只是一个静态方法,它返回一个数字getCmd读取文本文件中的一行(作为参数发送的索引)

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

如何在c#中拥有动态的Nunit TestCaseSource

你可以把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.
}