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

http://www.nunit.org/index.php?p=parameterizedTests&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
>
>

Responder a