2013-05-02 18 views
7

N-Unit 2.62'de sınama verilerini sınamak için birden çok TestCaseSource özniteliğini nasıl kullanırsınız?N-Unit Test için birden fazla TestCaseSource özniteliği nasıl kullanılır?

Şu anda yapıyorum şu:

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

Ve benim test case veri kaynakları şu şekilde görünür:

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


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

Maalesef N-Birim bile bu yana testten atmayacak Yanlış sayıda argüman veriyorum diyor. Dönüş tipi olarak bir TestCaseObject belirtebileceğinizi ve bir nesne dizisini geçirebileceğinizi biliyorum, ancak bu yaklaşımın mümkün olduğunu düşündüm.

Bunu çözmeme yardımcı olabilir misiniz?

cevap

10

Bu durumda kullanılacak uygun özellik ValueSource'dur. Aslında, bağımsız parametreler için bir veri kaynağı belirliyorsunuz.

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

Bu benim TestCaseSource özelliğini kullanan arıyordu işlevselliği türünü sağlayacaktır.

İlgili konular