Diferencia entre Mock / Stub / Spy en el marco de prueba de Spock

No entiendo la diferencia entre Mock, Stub y Spy in Spock testing y los tutoriales que he estado viendo en línea no los explican en detalle.