Empezando en el mundo de las pruebas unitarias (UT), al principio no se ve la diferencia entre un Mock y un Stub. Centrandose en PHPUnit, ambos se consiguen usando el método getMock(), y eso aún genera más confusión.
- Stub: se genera un nuevo objeto usando el método getMock(), a partir de una clase que puede ser la misma que se esta testeando o otra clase que se usa.
- Mock: idéntico a un Stub, pero con el añadido que en la creación del Mock, se añaden condiciones o “matchers” para comprobar la correcta utilización de la clase. Aportando así más pruebas al test.
Los siguientes diagramas quizás ayudan más a entender algo muy parecido:
A parte de un stub o un mock, también se puedan usar otros elementos para realizar las pruebas unitarias:
- Fake: clase programada para generar objetos que aparientan un funcionamiento correcto.
- Dummy: objetos usados para rellenar o ser pasados por parámetro. De implementación pueden estar vacíos, ya que no van a ser usados directamente.
- Spy: stub pero además de cumplit su función, almacena información como los métodos llamados.
Loco muy poca info!!No me quedo para nada claro!!la proxima esmerate un poco mas