unit testing - tutorial - ¿Cómo se adaptan las pruebas unitarias a una base de código?
unit test c# visual studio 2017 (7)
¿Es posible que tengamos pánico y nos confundamos entre las pruebas unitarias y las pruebas de rendimiento? ¿Es que su aplicación funciona bien con pocos usuarios, pero comienza a arrojar errores cuando está bajo una carga más pesada? Si es así, las pruebas unitarias no son la respuesta. Pruebas unitarias! = Pruebas de carga.
Si las pruebas unitarias son, de hecho, la respuesta, la modificación de las pruebas unitarias es una buena idea, ya que ayudará a limpiar el código. Solo prepárate para refactorizar mucho. El código escrito con TDD resulta ser muy diferente al código escrito sin TDD. En mi caso, tenía un método HandleDisposition () que se ocupaba de muchos casos. Este tipo de método no habría existido si hubiéramos escrito el código con TDD. Al adaptar las pruebas unitarias, hemos refabricado esa función y ahora tenemos métodos como XDisposition (), YDisposition (), ZDisposition (), que son mucho más fáciles de escribir pruebas unitarias.
¿Tiene alguna estrategia para actualizar las pruebas unitarias en una base de códigos que actualmente no tiene pruebas de unidades?
Aquí hay otro gran artículo sobre pruebas. En particular, una cita algo relevante de ella:
Aquí tiene una idea terrible: decida que va a pasar toda una semana construyendo un banco de pruebas para su proyecto. Primero que nada, es probable que te sientas frustrado y te quedes sin pruebas. En segundo lugar, probablemente escribirás malas pruebas al principio, por lo que incluso si te hacen un montón de pruebas escritas, vas a tener que volver atrás y volverlas a escribir una vez que descubras cuán lentas, frágiles o ilegibles son.
Creo que es mejor que construyas pruebas 1 a la vez porque estás solucionando errores o agregando nuevas funcionalidades ... no intentes crear casos de prueba faltantes, debes tener un objetivo final para cada prueba, en lugar de solo mejorar la cobertura .
Dale es votado. Sí, no hay ganancia para agregar pruebas unitarias al código que está funcionando. Digamos que hay dos errores desconocidos X e Y. En algún punto, X se revela por el uso de campo típico. Lo arreglas, agregas una prueba de unidad y sigues adelante. Ahora supongamos que Y nunca se descubre durante toda la vida del programa. Como Y nunca se reveló, es como si nunca hubiera existido; no es necesario desperdiciar los recursos. Multiplique esto por cientos o miles de errores inactivos y se ahorrará una gran cantidad de mantenimiento superfluo.
La mejor forma de actualizar un proyecto existente sin pruebas unitarias es hacerlo al corregir errores. Escriba una prueba que falle en la lógica que tiene el error en ella con los pasos para reproducir el error. Luego refactoriza el código hasta que pasen las pruebas. Ahora puede tener la certeza de que el error está solucionado y no se presentará más adelante en el ciclo y comenzó a introducir pruebas unitarias en el proyecto.
Leer trabajando efectivamente con Legacy Code by Feathers .
Jimmy Bogard tiene una buena serie de blogs sobre SOC .
¿Por qué quieres agregar pruebas unitarias? ¿Sientes que el código tiene errores? ¿Solo quieres algo que hacer? ¿Estás a punto de embarcarte en una nueva función?
Si se trata de un producto anterior que se lanzó hace bastante tiempo, estoy de acuerdo con los demás y solo agrego las pruebas cuando encuentro un error o agrego una nueva función.
Si se trata de un producto que aún se está desarrollando y no se lanzó o solo se lanzó recientemente, entonces comenzaría revisando el código. Si veo algo que no está del todo bien, le agregaré una prueba. Probablemente haga algunas pruebas para crear algunos datos de muestra. La creación de datos de muestra parece ofrecer mucho dinero, y también puede ser útil.
Creo que es beneficioso escribir las pruebas incluso cuando no tiene un error para probar: cuando agrega funciones nuevas o corrige errores más adelante, sus pruebas confirman que no ha introducido nuevos errores.
Si alguna vez intentas agregar pruebas unitarias al viejo código perl, recomiendo encarecidamente
Perl Testing: Un cuaderno de desarrollo por Ian Langworth y chromatic.
Tiene un buen truco para probar el código heredado y "no comprobable".