14

如何使用多个 TestCaseSource 属性为 N-Unit 2.62 中的测试提供测试数据?

我目前正在执行以下操作:

[Test, Combinatorial, TestCaseSource(typeof(FooFactory), "GetFoo"), TestCaseSource(typeof(BarFactory), "GetBar")]
FooBar(Foo x, Bar y)
{
 //Some test runs here.
}

我的测试用例数据源如下所示:

internal sealed class FooFactory
{
    public IEnumerable<Foo> GetFoo()
    {
        //Gets some foos.
    }
}


    internal sealed class BarFactory
{
    public IEnumerable<Bar> GetBar()
    {
        //Gets some bars.
    }
}

不幸的是,N-Unit 甚至不会启动测试,因为它说我提供了错误数量的参数。我知道您可以指定一个 TestCaseObject 作为返回类型并传入一个对象数组,但我认为这种方法是可能的。

你能帮我解决这个问题吗?

4

1 回答 1

17

在这种情况下使用的适当属性是ValueSource。本质上,您正在为每个参数指定一个数据源,就像这样。

public void TestQuoteSubmission(
    [ValueSource(typeof(FooFactory), "GetFoo")] Foo x, 
    [ValueSource(typeof(BarFactory), "GetBar")] Bar y)
{
    // Your test here.
}

这将启用我正在使用该TestCaseSource属性寻找的功能类型。

于 2013-05-02T20:49:35.760 回答