WatiN, testando aplicaciones web

WatiN LogoHacía tiempo que tenía pendiente en mi trabajo probar el Selenium, pero era una de esas cosas que uno lo mira un día, no le acaba de ver el punto y lo deja para más adelante. Y no es que no sea útil, realmente es completo, funciona en varias plataformas, tanto de navegadores como de sistemas operativos. Tiene un IDE sencillo que genera scripts e incluso es ámpliamente usado en Ruby on Rails, el framework de moda. Pero aun así, no me acabó de entrar por el ojo.

Una de las pegas que siempre le encontré fue que la integración en los proyectos web de .NET y en tests de NUnit no era lo más cómodo ni simple. Barreras, en definitiva. Pero he descubierto que no era el único que tenía esta impresión: he visto una comparativa de WatiN, Watir y Selenium (siempre hay alguien que te facilita el trabajo). Leyéndolo he decidido probar WatiN.

Y la verdad que la experiencia ha sido muy positiva. Los tests son sencillos de escribir, funcionan como es de esperar y con un lenguaje sencillo y claro. He probado primero algo parecido al ejemplo que hay en su página de inicio y por desgracia no ha funcionado a la primera. Pero estaba claro que algo estaba haciendo mal porque todo se colgaba a la hora de cerrar el Internet Explorer… Después de darle un par de vueltas he desactivado todos los plugins y voilà: funcionaba perfectamente. Al final era el Flashget que interactuaba de forma un tanto extraña.

Después me he puesto a jugar validando alerts de javascript y se ha complicado un poquillo, pero recurriendo a las listas de correo, alguien había preguntado ya mis dudas, como siempre. Al final el uso del DialogHandler ha quedado algo tal que así:

        [Test]
        public void BasicTest()
        {
            using(IE ie = new IE("http://intranet/formulario.aspx"))
            {
                AlertDialogHandler alertHandler = new AlertDialogHandler();
                ie.DialogWatcher.Add(alertHandler);

                ie.Button(Find.ByName("Continuar")).ClickNoWait();

                alertHandler.WaitUntilExists(5);
                alertHandler.OKButton.Click();
            }
        }

Realmente es duro y laborioso escribir este tipo de tests, pero como puede que mi futuro pase por diseñar un nuevo producto más o menos complejo durante unos cuantos meses, el testado de la interfaz de usuario será importante para validar que todo funciona como es debido.

Si te ha gustado esta entrada, por favor deja un comentario o suscríbete al RSS para que puedas recibir todas las novedades en tu lector de feeds favorito.
This entry was posted in Programación and tagged , , . Bookmark the permalink.

Leave a reply