Как использовать несколько атрибутов TestCaseSource для N-модульного теста

Как вы используете несколько атрибутов 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 в качестве возвращаемого типа и передать массив объектов, но я думал, что такой подход возможен.

Можете ли вы помочь мне решить это?


person elucid8    schedule 02.05.2013    source источник


Ответы (1)


Подходящим атрибутом для использования в этой ситуации является ValueSource. По сути, вы указываете источник данных для каждого аргумента, например.

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

Это включит тип функциональности, который я искал, используя атрибут TestCaseSource.

person elucid8    schedule 02.05.2013