Mi respuesta muy simplificada es:
- burla son objetos que tienen una interfaz similar a algo más
- talones de son métodos falsos y devolver una respuesta específica
Con ambos estamos tratando de lograr lo mismo: queremos probar una unidad específica (modelo/vista/controlador/módulo) de forma aislada. P.ej. cuando estamos probando el controlador, no queremos probar nuestro modelo, entonces usamos un simulacro. Queremos asegurarnos de que se invoquen los métodos correctos, p. find
. Entonces en nuestro simulacro, tenemos un talón que devolverá algo predefinido, sin ir a la base de datos.
Así que probamos las expectativas: los métodos que esperamos que se llamen (en otras unidades), sin realmente llamarlos. La prueba de ese método específico, debería haber sido cubierta en su propia prueba.
increíble explicado! –
Excelente explicación! Estaba luchando con eso, realmente contento de obtenerlo. –