Pregunta

Me pregunto cómo las personas están actualmente restableciendo sus datos / limpiando los remanentes de prueba para sus pruebas de WatiN / Wartir.

Por ejemplo, digamos que hay una prueba para agregar un usuario al sistema y que el nombre de usuario debe ser único. Obviamente, la primera ejecución sin ningún usuario debería funcionar bien, pero la segunda ejecución fallará sin la intervención manual.

¿Fue útil?

Solución

Hay un par de estrategias que podrías hacer para esto, asumo que estás usando WatiN, con Nunit o pruebas de la unidad VS para ejecutar tus pruebas.

Utilizar transacciones Un enfoque que se utiliza cuando la prueba de unidad es que " envuelve " toda la prueba en una transacción y al finalizar la prueba, restaure la transacción. En .net puedes usar System.Transactions para esto.

Crear una " página de código auxiliar " Cree una página en su aplicación que utilice la lógica empresarial existente para eliminar sus datos. Esta página debería estar protegida e, idealmente, ni siquiera implementarse en producción. Este es el enfoque que recomendaría.

Llamar a un servicio web Desarrolle un servicio web o llame a uno directamente desde el nivel de aplicación de la aplicación para realizar la eliminación. Probablemente también tengas que desarrollar esto.

Limpiar directamente Cree algunas clases en su código de prueba para acceder a los datos y limpiarlos.

Con cualquiera de estos tendrá que limpiar antes y después de ejecutar la prueba, es decir, en la configuración de la prueba y los métodos de limpieza de prueba. La razón para hacerlo dos veces es que debe asumir que su prueba ha fallado y no se ha limpiado correctamente.

Use Linq to Sql AFAIK si está usando Linq to sql, funciona en la memoria y envuelve la actualización completa en una transacción de forma automática. Si simplemente no llama al SubmitChanges (); Entonces deberías estar bien, pero no he probado esto por mi cuenta.

Otros consejos

Le he pedido a un desarrollador que haga un script que restablezca la base de datos. Después de una serie de pruebas, solo llamo al script y comienzo desde una base de datos limpia.

Mike: tu pregunta no es exclusiva de Watir / WatiN. Se aplica a cualquier prueba de UI, así que busque soluciones similares para Selenium, Windmill e incluso pruebas de integración sin cabeza (HtmlUnit, pruebas API, etc.). He respondido esta pregunta un par de veces personalmente en StackOverflow.

WatiN es para pruebas de interfaz de usuario.

Para probar el escenario que está buscando, puede generar un ID de usuario utilizando el código c # que lo hará único (en comparación con la forma en que se almacenó cuando creó la prueba).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top