Cómo testear código acoplado: Costuras

Muy probablemente tarde o temprano nos toque enfrentarnos a código que reúna dos características:

  • Código sin testear
  • Código altamente acoplado

Qué deberíamos hacer primero: El test, ¿o el refactoring para poder testear mejor? ¿el huevo o la gallina? Nosotros ya sabemos por qué no usar static, pero puede ser que "nuestro yo de hace 1 año", o incluso ese proyecto al que hemos llegado, haga uso de este tipo de prácticas. Puede ser que incluso ese proyecto cuente con una gran base de código sin testear. Pero esto no puede ser un problema para nosotros, nosotros hemos visto los vídeos de CodelyTV y estamos entrenados para eso y más :D En el vídeo de hoy veremos una aplicación práctica del concepto de costura o "seam". Este concepto está relacionado con una técnica que nos puede ser útil a la hora de abrirnos paso entre código que reúna las dos características antes mencionadas (acoplado y sin testear). Esta técnica nos será útil para modificar nuestro código lo mínimo e indispensable con el fin de hacerlo más fácil de testear. El procedimiento será el siguiente:

  1. Aplicar la técnica que veremos en el vídeo (abrir una costura)
  2. Desarrollar nuestro test centrado en el componente que queremos testear y obviando las clases colaboradoras con las que se acopla
  3. Refactorizar en profundidad, ahora sí, con la tranquilidad del test que hemos podido implementar

Como ya digo en el vídeo, esta técnica la descubrí en un meetup de Barcelona Software Craftsmanship gracias a Manuel Rivero. Si no me equivoco, la citaba del libro "Working Effectively with Legacy Code". Citar también el post original en el que está basado este vídeo: Testing legacy: Hard-wired dependencies (de Sandro Mancuso). Recordar por último que este tipo de acoplamientos se pueden ver fácilmente si sabemos escuchar a nuestros test, esa nave del misterio que vimos hace un tiempo :)

Paga según tus necesidades

lite (sólo mensual)

Cargando…
al mes
  • Acceso a un subconjunto de cursos para sentar las bases para un código mantenible, escalable y testable
  • Factura de empresa
Popular

standard

Cargando…
Ahorra 121
Pago anual de 0
al mes
  • Catálogo completo de cursos
  • Retos de diseño y arquitectura
  • Vídeos de soluciones destacadas de los retos
  • Recibir ofertas de empleo verificadas por Codely
  • Factura de empresa

premium

Cargando…
Ahorra 89
Pago anual de 0
al mes
  • Todo lo anterior
  • Más beneficios próximamente

No subiremos el precio mientras mantengas tu suscripción activa