2012-12-24 43 views
16

NUnit'i değer özniteliğiyle kullanmaya çalışıyorum, böylece 100 ayrı sınama olmadan çok sayıda farklı girdi belirtebilirim.NUnit Bir dizi değerle test edin

Ancak şimdi aynı girdi setini kullanmak istediğim zamanların olduğu, ancak aşağıda olduğu gibi çok farklı bir testin gerçekleştiğinin farkına varıyorum.

Tüm değerleri tek bir yerde, bir dizi gibi tanımlayabileceğim ve her değer özniteliği için diziyi kullanabileceğim bir yol var mı?

Testin 100 değer çalıştıran 1 test yerine 100 bireysel test olarak çalıştığından emin olmak istiyorum.

Nunit belgelerine baktım, ancak bunu başarmanın bir yolunu bulamıyorum. Herhangi bir fikir?

Kodu:

[Test] 
public void Test1([Values("Value1", "Value2", "Value3", ... "Value100")] string value) 
{ 
    //Run Test here 
} 

[Test] 
public void Test2([Values("Value1", "Value2", "Value3", ... "Value100")] string value) 
{ 
    //Run Test here 
} 

[Test] 
public void Test3([Values("Value1", "Value2", "Value3", ... "Value100")] string value) 
{ 
    //Run Test here 
} 

cevap

24

TestCaseSource attribute'un burada kullanılmasıdır.

bakınız örnek:

private string[] commonCases = { "Val1", "Val2", "Val3" }; 

[Test] 
[TestCaseSource("commonCases")] 
public void Test1(string value) 
{ 
    .... 
} 

[Test] 
[TestCaseSource("commonCases")] 
public void Test12(string value) 
{ 
    .... 
} 
3

Sen Test yönteminin yerine param üzerinde ValuesAttribute üzerinde FactoryAttribute kullanabilirsiniz. Bu here hakkında daha fazla bilgi edinin.

Düzeltme: Alexander hakları. FactoryAttribute, API'nin geçici bir parçasıydı. Doğru yol, TestCaseSourceAttribute

İlgili konular