¿Cuál es la diferencia entre un Mock y un Stub?

publicado por: Anonymous

He leído varios artículos y post sobre el tema pero muchos se contradicen y no lo dejan muy claro y simplemente ponen una definición simple y que no explica la diferencia. Ya sé que hay 5 tipos de test doubles pero los que más se parecen son los Mocks y los Stubs.

No puedo poner ninguna etiqueta como #test o #test-doubles así que pongo la única que encontré que se refiere a algo de test.

solución

No es fácil de entender, y mucho menos de explicar, por ello es que hay tantos sitios que intentar clarificar esta duda. Voy a intentar explicártelo lo más sencillo posible, tal y como yo lo interpreto (esto es importante, pues no todo el mundo lo interpreta igual):

Mock: Se utiliza para comprobar el flujo.
Stub: Se utiliza para comprobar la funcionalidad.

Es decir, utilizaré un Mock si me interesa saber que, llamando a cierta función, está, por ejemplo, ejecuta la llamada a otra, sin importarme (al menos de momento ni demasiado) el resultado.

En cambio utilizaré un Stub si me interesa saber que, llamando a cierta función, esta me devuelve cierto resultado, sin importarme (al menos de momento ni demasiado) si ha tenido que realizar llamadas a otras funciones para conseguirlo.

Teniendo en cuenta que parece que sabes lo suficiente sobre test, espero que te sea de utilidad esta aclaración. Saludos!

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *