2010-11-24 16 views
6

que tienen una unidad de prueba escrito en C# que utiliza un CSV como origen de datos:¿Cómo pasar un valor nulo a una prueba unitaria impulsada por datos desde un archivo 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); 
    } 

Funciona increíblemente, hasta que yo tenía que añadir algunas pruebas valor nulo. Parece que no puedo entender cómo pasar un valor NULO como uno de los elementos de datos ... ¿Alguien ha hecho esto antes?

Gracias!

+0

He intentado lo obvio - celda en blanco, escribiendo en NULO, ninguno de esos funcionó. – morganpdx

+0

¿Con qué tipo de datos está tratando? Enteros, cadenas, múltiples tipos? Cuando dices hasta que necesitas un valor nulo, ¿qué ocurre exactamente, el programa simplemente falla? ¿La documentación de Mock habla de cómo lidiar con valores nulos? –

Respuesta

5

No puede. Estás leyendo valores de un archivo CSV. No existe el valor 'nulo' en un archivo CSV. La siguiente mejor cosa que sé hacer es escribir un código para probar 'nulo' si se lee una 'cadena mágica' del archivo CSV.

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

¿O simplemente convierte cadenas vacías en nulas? –

+1

No recomendaría convertir cadenas vacías a nulas en este contexto porque es posible que desee que su código trate las cadenas vacías y las cadenas nulas de manera diferente. –

+0

Gracias a @Rice Flour Cookies, ¡debo tener cerebro prenavideño! – morganpdx

Cuestiones relacionadas