¿Por qué puede probar métodos / campos privados en Spock sin problemas?

package com.example.dev;
public class AClass {
 private Integer a =10;
...//other code
}

y cuando intento acceder a en mi método Spock:

package com.example.dev;
def 'test a'() {
 AClass aClassVar = new AClass()
 aClassVar.a = new Integer(100);
...//other testing stuff
}

Funciona bien. ¿Por qué pasa esto? ¿Spock usa la reflexión para acceder a los campos privados? ¿O mi encapsulación no está bien escrita?

Respuestas a la pregunta(2)

Su respuesta a la pregunta