Capítulo 17. De los simulacros a los mapas
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Los mocks son una técnica común para desacoplar el código orientado a objetos de sus dependencias de producción. ¿Existen soluciones mejores en Kotlin?
Este es un breve capítulo adicional, continuación del capítulo 16. En ese capítulo, vimos que nuestras pruebas utilizaban simulacros porque tenían que implementar dos interfaces multimétodo, aunque la mayoría de esos métodos no se utilizaran. Dejamos la refactorización, habiendo sustituido las dependencias de interfaces multimétodo por una dependencia de sólo las dos operaciones que realmente se necesitaban para realizar la tarea. Las pruebas, sin embargo, siguen simulando toda la interfaz, y luego pasan una referencia a los métodos necesarios al sujeto bajo prueba (Recommendations):
publicclassRecommendationsTests{privatefinalDistanceCalculatordistanceCalculator=mock(DistanceCalculator.class);privatefinalFeaturedDestinationsfeaturedDestinations=mock(FeaturedDestinations.class);privatefinalRecommendationsrecommendations=newRecommendations(featuredDestinations::findCloseTo,distanceCalculator::distanceInMetersBetween);...}
Las pruebas abstraen la burla que hay detrás de los métodos givenFeaturedDestinationsFor y givenADistanceBetween