如何在C#中使用动态Nunit TestCaseSource?

时间:2015-06-03 17:11:44

标签: c# nunit

我想做的就是本页的第一个例子,但是......

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在文本文件中读取一行(作为参数发送的索引)

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

这样做

1 个答案:

答案 0 :(得分:2)

您可以将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.
}