Hoy a última hora encontré los TestCaseSource, lo del primer link, pero no
lo pude probar. 

Hoy hice una prueba reducida de lo que me recomendaste pero además de la
desventaja que vos marcaste, queda muy incómodo de leer. Andar anda y testea
lo que debe. Por eso creo que los TestCaseSource me van a ser muy útiles.

Lo del segundo link lo agradezco como un regalo. Una pena que se me pierde
el video de los últimos minuto y medio más o menos, pero creo que no muestra
nada más.

Muy fino.

 

Gracias.

 

Carlos Marcelo Santos.

 

De: puntonet@mug.org.ar [mailto:punto...@mug.org.ar] En nombre de Carlos
Peix
Enviado el: miércoles, 01 de septiembre de 2010 8:34
Para: puntonet@mug.org.ar
Asunto: [puntonet] Re: [puntonet] RE: [puntonet] Re: [puntonet] RE:
[puntonet] Re: [puntonet] RE: [puntonet] Re: [puntonet] RE: [puntonet] Re:
[puntonet] [puntonet] NUnit, código común

 

Otra forma de hacerlo es con parameterized tests con NUnit 2.5,
probablemente mas limpio:

 

http://www.nunit.org/index.php?p=parameterizedTests
<http://www.nunit.org/index.php?p=parameterizedTests&r=2.5> &r=2.5

 

Si tenes 10 minutos mirate esto:

 

http://vimeo.com/13072671

 

 

----------------------------------

Carlos Peix

2010/8/31 Carlos Marcelo Santos <carlos.san...@mug.org.ar>

Muchas Gracias Carlos.

 

De: puntonet@mug.org.ar [mailto:punto...@mug.org.ar] En nombre de Carlos
Peix
Enviado el: martes, 31 de agosto de 2010 22:41


Para: puntonet@mug.org.ar

Asunto: [puntonet] Re: [puntonet] RE: [puntonet] Re: [puntonet] RE:
[puntonet] Re: [puntonet] RE: [puntonet] Re: [puntonet] [puntonet] NUnit,
código común

 

Hola Carlos,

 

Que es lo que prueban todos estos casos? Que diferencias implican para el
objeto bajo prueba los diferentes archivos?

 

Si el componente no debe fallar con ninguno de ellos, por algun motivo que
no se me ocurre ahora, haria un solo test con un loop, algo asi:

 

    [TestFixture]

    class MCImageTest

    {

        private string[] fileNames;

        

        [SetUp]

        public void Init()

        {

            fileNames = new string[] { "Image01.pix", "Image02.pix", ...};

        }

 

        [Test]

        public void VerificoQueHayaAlgo()

        {

            foreach (string fileName in fileNames)

            {

                using (var m =
ImageLib.MCImageUtils.LoadImageFromRawData(fileName))

                {

                    m.Should().Not.Be.Equals(null);

                    m.Height.Should().Be.GreaterThanOrEqualTo(0);

                }

            }

        }

    }

 

Este no es un test ideal puesto que hace varios asserts y, cuando falle, va
a ser dificil saber porque pero si simplemente tiene que pasar todas las
imagenes sin mas, es lo mejor que se me ocurre.


----------------------------------
Carlos Peix

2010/8/31 Carlos Marcelo Santos <carlos.san...@mug.org.ar>

Perdón que vuelva sobre el tema. Ahora tengo una versión reducida de la
clase:

namespace MCImage.Test

{

    [TestFixture]

    class MCImageTest

    {

        private string fileName = "Image01.pix";

        private ImageLib.MCImage m;

        

        [SetUp]

        public void Init()

        {

            ActionAssert.NotThrow(() => m =
ImageLib.MCImageUtils.LoadImageFromRawData(fileName));

        }

 

        [TearDown]

        public void Dispose()

        {

            ActionAssert.NotThrow(() => m.Dispose());

        }

 

        [Test]

        public void VerificoQueHayaAlgo()

        {

            m.Should().Not.Be.Equals(null);

        }

 

        [Test]

        public void VerificoWidth()

        {

            m.Height.Should().Be.GreaterThanOrEqualTo(0);

        }

    }

}

 

Tendría que tener unas 10 o 15 clases prácticamente iguales a esta, donde
toda la variación es el string que pinté de rojo (Image01)

En la clase original tengo más de veinte variables declaradas y unos treinta
tests.

Vi que con TestCase le puedo pasar estos argumentos a los tests, pero no
encuentro cómo pasarle estos valores al Setup

¿Alguna idea?

 

Muchas Gracias.

 

Carlos Marcelo Santos.

 

Se certificó que el correo entrante no contiene virus.


Comprobada por AVG - www.avg.es

Versión: 9.0.851 / Base de datos de virus: 271.1.1/3104 - Fecha de la
versión: 08/31/10 03:34:00

 

Se certificó que el correo entrante no contiene virus.
Comprobada por AVG - www.avg.es
Versión: 9.0.851 / Base de datos de virus: 271.1.1/3106 - Fecha de la
versión: 09/01/10 03:34:00

Responder a