Frage Wie übermittele ich aus einer CSV-Datei einen Nullwert an einen datengetriebenen Unit-Test?


Ich habe einen Komponententest geschrieben in c #, der eine .CSV als Datenquelle verwendet:

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

Funktioniert fabelhaft, bis ich einige Nullwerttests hinzufügen musste. Ich kann nicht herausfinden, wie man einen NULL-Wert als eines der Datenelemente übergibt ... hat jemand das schon mal gemacht?

Vielen Dank!


6
2017-11-24 20:21


Ursprung


Antworten:


Du kannst nicht. Sie lesen Werte aus einer CSV-Datei ein. In einer CSV-Datei gibt es keinen Nullwert. Die nächste beste Sache, die ich tun könnte, wäre, Code zu schreiben, um 'null' zu testen, wenn eine 'magische Zeichenfolge' aus der CSV-Datei gelesen wird.

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

5
2017-11-24 20:25