C# 如何从CSV文件向数据驱动单元测试传递空值?

C# 如何从CSV文件向数据驱动单元测试传递空值?,c#,unit-testing,mstest,C#,Unit Testing,Mstest,我有一个用c#编写的单元测试,它使用.CSV作为数据源: [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestData.csv", "TestData#csv", DataAccessMethod.Sequential), DeploymentItem("TxRP.Tests\\TestData.csv"), TestMethod()] public void C

我有一个用c#编写的单元测试,它使用.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);
    }
[DataSource(“Microsoft.VisualStudio.TestTools.DataSource.CSV”)、“|DataDirectory |\\TestData.CSV”、“TestData#CSV”、DataAccessMethod.Sequential)、DeploymentItem(“TxRP.Tests\\TestData.CSV”)、TestMethod()]
public void CompareOrgsTest()
{
//安排
var vdd=new Mock().Object;
HtmlHelper=MVCMocks.CreateMockHelper(vdd);
字符串orgOne=testContextInstance.DataRow[“orgOne”].ToString();
字符串orgTwo=testContextInstance.DataRow[“orgTwo”].ToString();
bool expected=Convert.ToBoolean(testContextInstance.DataRow[“OrgCompareeExpected”]);
//表演
bool-actual=HtmlHelpers.CompareOrg(helper、orgOne、orgTwo);
//断言
Assert.AreEqual(预期、实际,“未返回”+expected+”.Org1=“+orgOne+”,Org2=“+orgtow2”);
}
工作非常出色,直到我需要添加一些空值测试。我似乎不知道如何将空值作为数据元素之一传递……以前有人这样做过吗


谢谢

你不能。您正在从CSV文件中读取值。CSV文件中没有“null”值。我知道要做的下一件最好的事情是,如果从CSV文件中读取了“神奇字符串”,则编写一些代码来测试“null”

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

我试过使用明显空白的单元格,输入NULL,这些都不起作用。你在处理什么类型的数据?整数、字符串、多种类型?当你说直到你需要一个空值,到底发生了什么,程序崩溃了吗?Mock上的文档提到了如何处理空值吗?或者只是将空字符串转换为空值?我不建议在这种情况下将空字符串转换为空值,因为您可能希望您的代码以不同的方式处理空字符串和空字符串。我想数个数据驱动测试和一个空测试仍然比大量测试要好单独测试。