Pregunta

Soy nuevo en la unidad de pruebas por lo que me gustaría obtener la opinión de algunos que son un poco más puesta al tanto de entrada.

Tengo que escribir algo de código de pantalla raspado en breve. El sistema de destino es una interfaz de usuario web donde habrá abundante análisis de HTML y la bondad volátiles similares involucrados. Nunca voy a ser notificado de cualquier cambio por el sistema de destino (por ejemplo, le pusieron un rediseño de su sitio o de otra manera cambiar la funcionalidad). Así que preveo mi código romper con regularidad.

Así que creo que mi verdadera pregunta es, ¿cuánto, en su caso, de mi unidad de pruebas debe preocuparse o tratar con la interfaz (la página web que estoy raspando) cambiando?

Creo que las pruebas unitarias o no, voy a tener que probar en gran medida en tiempo de ejecución ya que necesito para asegurar los datos que estoy consumiendo es prístino. Incluso si me encontré pruebas de unidad antes de cada carrera, la interfaz de usuario web aún podía cambiar entre las pruebas y el tiempo de ejecución.

Así que hago me centro en el código de comprobación y control de excepciones? ¿Eso significa que para dibujar una línea en la arena y no incluyen este tipo de pruebas de pruebas unitarias en total?

Gracias

¿Fue útil?

Solución

Prueba de la unidad siempre debe estar diseñado para tener resultados repetibles conocidos.

Por lo tanto, a la unidad de prueba de una pantalla-raspador, se debe escribir la prueba en contra de un conjunto conocido de HTML (puede usar un objeto de burla para representar este)

El tipo de cosas que está hablando en realidad no sonar como un escenario para pruebas unitarias para mí - si usted quiere asegurarse de que su código se ejecuta como robusta como sea posible, entonces es más, como usted dice, acerca de las pruebas y la excepción -code manejo.

También incluiría un código de alerta, por lo que el sistema hecho consciente de todas las ocasiones cuando el HTML no consigue analiza como se esperaba.

Otros consejos

Usted debe tratar de separar sus pruebas tanto como sea posible. Prueba de los datos de la manipulación con las pruebas de bajo nivel que ejecutan el código real (es decir, no a través de un navegador simulado).

En el navegador simulado, sólo asegúrese de que sucedan las cosas bien cuando se hace clic en los botones, al momento de enviar las formas, y cuando se siguen los enlaces.

Nunca trate de probar si el diseño es correcto.

Creo que las pruebas unitarias cosa podrían ser útiles para aquí es que si usted tiene un servidor de compilación que le dará un aviso temprano el código ya no funciona. No se puede escribir una prueba unitaria para demostrar que screenscraping seguirá funcionando si el sitio cambia de HTML (porque no se puede decir lo que va a cambiar).

Usted puede ser capaz de escribir una prueba unitaria para comprobar que algo útil se volvió de sus esfuerzos.

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