2015-06-14 13 views
5

Merhaba Nunit için yeni ve TestCase bir TestCase bir dizi nesne geçiriyorum. Nedense Nunit bir ihmal çıktı sonuçlanır kendisine geçirilen parametreleri olmayan ilk testi çalıştırmak gibi görünüyor olsa:Nunit, herhangi bir parametresi olmayan ilk yinelemeli TestCaseSource ile TestestSase'i çalıştırıyor? Niye ya?

testi:

private readonly object[] _nunitIsWeird = 
{ 
    new object[] {new List<string>{"one", "two", "three"}, 3}, 
    new object[] {new List<string>{"one", "two"}, 2} 

}; 

[TestCase, TestCaseSource("_nunitIsWeird")] 
public void TheCountsAreCorrect(List<string> entries, int expectedCount) 
{ 
    Assert.AreEqual(expectedCount,Calculations.countThese(entries)); 
} 

TheCountsAreCorrect (3 testleri), Başarısız: Bir veya daha fazla alt testleri yok Sayılan, hataları TheCountsAreCorrect() vardı: Hayır argümanlar TheCountsAreCorrect (System.Collections.Generic.List 1[System.String],2), Success TheCountsAreCorrect(System.Collections.Generic.List 1 [System.string], 3), Başarı

sağlandıBu yüzden ilk test yok sayılıyor çünkü herhangi bir parametre yok, fakat bu test çalışmasını istemiyorum, hiç bir şey ifade etmiyor ve test çıktısını yok ediyor. Göz ardı etmeyi denedim ve bu test çıktısını doğru şekilde ayarladı, ancak tüm testleri tekrar çalıştırdığımda geri geliyor.

Eksik olduğum bir şey var mı, her yere baktım.

cevap

6

TestCase ve TestCaseSource iki farklı şey yapar. Sadece TestCase özniteliğini kaldırmanız gerekiyor. NUnit başarısız olup testi, hiçbir parametreler sağlamak için çalışıyor böylece

[TestCaseSource("_nunitIsWeird")] 
public void TheCountsAreCorrect(List<string> entries, int expectedCount) 
{ 
    Assert.AreEqual(expectedCount,Calculations.countThese(entries)); 
} 

TestCase nitelik, sıralı veri temin içindir. Ardından, TestCaseSource özniteliğini işliyor ve sağladığınız verileri inceliyor ve bunu da sınamaya doğru çalışmaya çalışıyor. Öyleydi forsvarir

[Test, TestCaseSource("_nunitIsWeird")] 
public void TheCountsAreCorrect(List<string> entries, int expectedCount) 
+0

Teşekkür: Bir yan not olarak

kesinlikle ancak bunun gerekli bulmadım ettik, dokümanlar da aşağıdaki gibi bir Test özniteliği ile TestCaseSource testini işaretlemelisiniz düşündürmektedir konuşma Testin yerine TastCase kullandığımı gösteren metnin yanlış okunması. teşekkür ederim – Phil

İlgili konular