Puede darse el caso, trabajando con test unitarios, que necesitemos de una clase ficticia para testear alguna funcionalidad. En ese caso, solo necesitamos usar la función getMockBuilder
para crear una clase ficticia, y sobre dicha clase haremos un mock. Para entender mejor su uso, veremos un ejemplo.
Ejemplo de uso
Supongamos que tenemos un administrador de documentos DocumentManager
. Dicho administrador, permite agregar cualquier tipo de documento con addManager($document)
. Esta es la funcionalidad que queremos testear. Vemos como sería el Test Unitario sin usar MockBuilder.
Como podemos ver, el test queda acoplado a la clase Post (aunque débilmente). Si dicha clase deja de existir, o deja de implementar un método getSlug()
, provocará que nuestro test falle incluso cuando DocumentManager siga funcionando correctamente.
Solución
Como hemos dicho disponemos de MockBuilder para crear una clase ficticia.
Los pasos para realizar el mock son muy sencillos:
getMockBuilder()
con el nombre de la clase.- Definimos los métodos que necesitamos que tenga con
setMethods
. - Obtenemos el mock con
getMock()
.
Espero que os sirva.