2013-05-02 4 views
7

複数のTestCaseSource属性を使用してN-Unit 2.62のテストにテストデータを供給するにはどうすればよいですか?私は現在、次のことをやっているNユニットテスト用に複数のTestCaseSource属性を使用する方法

[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-ユニットでもあるため、テストをキックオフしません私は間違った数の議論を提供していると言います。私は戻り値の型としてTestCaseObjectを指定してオブジェクト配列を渡すことができますが、このアプローチが可能だと思いました。

これを解決するお手伝いをしてもらえますか?

答えて

10

この状況で使用する適切な属性はValueSourceです。基本的には、個々のパラメータのデータソースを指定しています。

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

これは私がTestCaseSource属性を使用して探していた機能のタイプを有効にします。

関連する問題