Mocks y Stubs en Behaviour Driven Development (BDD)

Quiero hacer referencia hacia este blog:

http://theproc.es/2009/5/21/658/diferencias-entre-mocks-y-stubs

En el que se encuentra una comparación bastante clara y detallada entre las definiciones de los Mocks y Stubs, en aquel artículo el lenguaje es Ruby, pero hay frameworks que permiten crear estos en otros lenguajes, en Java, por ejemplo, una de las librerías es EasyMock, que es la que uso y funciona bastante bien.

Bueno, la diferencia entre estos de manera bastante resumida es la siguiente:

Stubs: Son métodos que proveen de respuestas predefinidas para así proveer al código bajo prueba de las dependencias que este requiera, por ejemplo, un método web service que se programa para que siempre tenga un retorno determinado, para que así nuestra aplicación pueda probar el código que se encuentra esperando una llamada real a este web service.

Mocks: Son objetos/métodos preprogramados con expectativas (cantidad de llamadas, argumentos específicos, etc) que especifican la interacción que nuestro código debería tener con ellos. Por ejemplo podríamos crear un mock para un método de acceso a datos (capa DAO) que esperamos que sea llamada una sola vez (y no más) para persistir un registro, así la expectativa sería que este método sea llamado exactamente una vez y si esta expectativa no se cumple el framework nos alertaría haciendo fallar la prueba.

2 thoughts on “Mocks y Stubs en Behaviour Driven Development (BDD)”

Leave a Reply

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