2010-11-24 9 views
6

C# ile yazılmış bir birim testi var. Veri kaynağı olarak bir .CSV kullanıyor:Bir CSV dosyasından veri odaklı birim testine boş değer nasıl iletilir?

 [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestData.csv", "TestData#csv", DataAccessMethod.Sequential), DeploymentItem("TxRP.Tests\\TestData.csv"), TestMethod()] 
    public void CompareOrgsTest() 
    { 
     // Arrange 
     var vdd = new Mock<ViewDataDictionary>().Object; 
     HtmlHelper helper = MVCMocks.CreateMockHelper(vdd); 
     string orgOne = testContextInstance.DataRow["OrgOne"].ToString(); 
     string orgTwo = testContextInstance.DataRow["OrgTwo"].ToString(); 
     bool expected = Convert.ToBoolean(testContextInstance.DataRow["OrgCompareExpected"]); 

     // Act 
     bool actual = HtmlHelpers.CompareOrg(helper, orgOne, orgTwo); 

     // Assert 
     Assert.AreEqual(expected, actual, "Did not return " + expected + ". Org1=" + orgOne + ", Org2=" + orgTwo); 
    } 

Bazı boş değer testlerini eklemem gerekene kadar inanılmaz bir şekilde çalışıyor. Veri öğelerinden biri olarak NULL değerini nasıl geçtiğini anlayamıyorum ... bunu daha önce kim yaptı?

Teşekkürler!

+0

Açık - boş hücreyi NULL yazarak denedim, bunların hiçbiri işe yaramadı. – morganpdx

+0

Ne tür bir veri ile uğraşıyorsunuz? Tamsayılar, Dizeler, çoklu tipler? Sen ne zaman söylüyorsun, boş bir değere ihtiyacın olduğunda, tam olarak ne olur, program çöküyor mu? Mock belgeseli, null değerlerle nasıl başa çıkılacağı hakkında konuşuyor mu? –

cevap

5

Yapamazsınız. Bir CSV dosyasındaki değerleri okuyorsunuz. CSV dosyasında 'boş' değeri diye bir şey yoktur. Yapacağım en iyi şey, CSV dosyasından 'sihirli bir dize' okunduğunda 'null' test etmek için bir kod yazmak olacaktır.

string orgOne = testContextInstance.DataRow["OrgOne"].ToString(); 
if (orgOne=="null") 
    orgOne = null; 
+0

Veya boş dizeleri boşa dönüştürmek mi? –

+1

Bu bağlamda boş dizeleri boş değere dönüştürmeyi önermem çünkü kodunuzun boş dizeleri ve boş dizeleri farklı şekilde işlemesini isteyebilirsiniz. –

+0

Teşekkürler @Rice Un Kurabiyeler, tatil öncesi beynime sahip olmalıyım! – morganpdx