webreactiva-devs / calambrazo-silver-oslo

Código Calambrazo: Proyectos para devs de alto voltaje
0 stars 0 forks source link

Testeo del sistema de control de votos anónimos #6

Open delineas opened 2 days ago

delineas commented 2 days ago

Los malandriners desatados no descansan. Han demostrado ser maestros en el arte de burlar cualquier restricción que les pongamos. Pero esta vez no nos pillarán desprevenidos.

Necesitamos un arsenal de tests automatizados que pongan a prueba nuestro sistema de control de votos anónimos y garanticen que las medidas implementadas son efectivas. Si fallamos aquí, los malandriners arrasarán con todo.


Historias de usuario:


Tarea A - Los tests

Nota: Esta tarea tendría su propia PR

Tres tipos de tests (En Laravel y en cualquier software)

Puedes ver un ejemplo de cada en esta PR

Nos centraremos en los últimos: Test end2end:

Usando Laravel Dusk, simular usuarios anónimos que intentan votar desde:

Tarea B - Justificación para que existan los test

Nota: Esta tarea tendría su propia PR

Hemos detectado de la tarea anterior que hay cierto código que se puede refactorizar dentro del VoteController.

Lo podemos ver siempre cuando aparece código repetido.

image

Existen 2 opciones

Opción A

Utilizar un solo sistema de validación que agrupe los 3 que se han añadido.

Los tres son consultas sobre la base de datos.

Opción B

Es la que elegiremos.

Dar un salto a pro y buscar una forma de consolidar un sistema que sea escalable y fácilmente testeable.

Hemos visto como cada Service tiene un método de comprobación. Todos se parecen bastante.

Gracias a eso podemos entender que se podría tener un contrato para que nuestros Services tuvieran la misma firma y pudieran intercambiarse.

image

De esta forma podríamos crear un Validator que permitiera usar tantos validadores de voto como quisiéramos y que pudieran ordenarse al gusto.

image

Todos independientes, pero todos cumpliendo el contrato.

Buscamos que primero crees los tests antes de refactorizar. Una vez refactorizado los tests deben aparecer en verde porque todo funciona correctamente.

Criterios de aceptación

Tarea A - Los tests


Tarea B - Justificación para que existan los tests y refactorización

delineas commented 2 days ago

Vida extra

Una vez se ha completado todo lo anterior bajar por la pirámide de los tests a tests de integración y unitarios para comprobar las diferencias.