2010-11-24 1 views
6

У меня есть модульный тест, написанный на C#, который использует .csv в качестве источника данных:Как передать значение NULL в единичный тест, управляемый данными из файла CSV?

[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); 
    } 

Работает неправдоподобно, пока не требуется, чтобы добавить нулевое значение тестирования. Я не могу понять, как передать значение NULL в качестве одного из элементов данных ... кто-нибудь сделал это раньше?

Спасибо!

+0

Я пробовал очевидную пустую ячейку, набрав NULL, ни один из них не работал. – morganpdx 2010-11-24 20:22:54

+0

С какими данными вы имеете дело? Целые числа, строки, несколько типов? Когда вы говорите до тех пор, пока вам не понадобится нулевое значение, что именно происходит, программа просто рушится? Описывает ли документация на Mock о том, как обращаться с нулевыми значениями? – 2010-11-24 20:24:35

ответ

5

Вы не можете. Вы читаете значения из файла CSV. В CSV-файле нет такой вещи, как «нулевое» значение. Следующее лучшее, что я знаю, это написать код для проверки «null», если из файла CSV будет прочитана «волшебная строка».

string orgOne = testContextInstance.DataRow["OrgOne"].ToString(); 
if (orgOne=="null") 
    orgOne = null; 
Смежные вопросы