如何使用多个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作为返回类型并传入一个对象数组,但我认为这种方法是可行的。
你能帮我解决这个问题吗?
答案 0 :(得分:11)
在这种情况下使用的适当属性是ValueSource
。基本上,您正在为各个参数指定数据源,如此。
public void TestQuoteSubmission([ValueSource(typeof(FooFactory), "GetFoo")] Foo x,
[ValueSource(typeof(BarFactory), "GetBar")] Bar y)
{
//Your test here.
}
这将使用TestCaseSource
属性启用我正在寻找的功能类型。