Por Franz Maranhao Borucki – Estudiante de la carrera de Ingeniería Informática
El objeto simulado o, en otras palabras, “mock”, es una función que reemplaza e imita un objeto o función real que opera dentro del programa. El propósito de esto es que, al probar el programa, se utilice el mock en vez del objeto real. Muchos han considerado el mock como “un muñeco de prueba”, ya que el programa al correr no utiliza el objeto real, y al correr el mock puede solucionar problemas o mejorar un programa. Al crear un mock, se debe tomar en cuenta que su interfaz debe ser igual a la del objeto que se quiere simular. También dentro de la función se debe especificar cuál de los atributos y métodos son mocks. El output o respuesta debe ser la misma a la del objeto real una vez que este es implementado.
Un mock es una prueba unitaria que, en otras palabras, es un método que prueba una parte estructural del programa. Estas pruebas unitarias son usualmente fáciles de codificar y pueden crearse en un periodo muy rápido. Cada una de estas tiene diferentes tipos:
• Unitaria: prueba cantidades pequeñas de código.
• Repetible y predecible: su output debe ser el mismo, lo que significa que se espera el mismo resultado siempre que se corra.
• Independientes: no afectan ni dependen de otras pruebas.
• Automatizables: no necesita de acción manual de parte del programador.
• Prueba métodos públicos: hace que la prueba sea versátil a cambios y se pueda usar pruebas de regresión durante su implementación en el código.
• Profesionales: las pruebas deben ser iguales al código original.
El mock simula una prueba unitaria (sea cualquiera de estas) y ayuda a devolver lo que necesita para la prueba, en vez de determinar los datos que el objeto real necesita al correr el programa e insertarlos.
I. Ventajas de los “Mocks”
Una de las ventajas de los mocks es que permite hacer cambios en su interior. En otras palabras, si hubo un problema en el programa por el código del mock, se puede restaurar a versiones anteriores; esto se llama regresión. Usando métodos similares, se puede documentar cada cambio del mock, para así catalogar en un historial cada uno de los cambios que se han hecho. También con cada mock que se hace, si por casualidad hay algún error en alguno de ellos, ese error es guardado y catalogado. Así es más fácil de localizar el error o de un objeto real o de un mock u objecto simulado.
El mock es uno de los 3 tipos de objetos falsos o simulados. Uno de estos es el método “stub” que, al igual que el mock, imita un componente, pero puede ser configurado a lo que la prueba unitaria trata de probar. El otro es el tipo proxy, que delega llamadas en el objeto colaborador real, y registra los métodos llamados por el mismo.
En conclusión, se puede decir que los métodos de objetos simulados son muy útiles en la programación moderna, y es fuertemente sugerido que cada programador aprenda a implementar estos métodos de prueba, ya que hace los códigos estables a través de su desarrollo.