Solución:
Necesitas poner la clase donde el se llama constructor en el @PrepareForTest
anotación en lugar de la clase que se está construyendo; consulte Construcción simulada de nuevos objetos.
En tu caso:
✗ @PrepareForTest(MyQueryClass.class)
✓ @PrepareForTest(A.class)
Mas general:
✗ @PrepareForTest(NewInstanceClass.class)
✓ @PrepareForTest(ClassThatCreatesTheNewInstance.class)
Como @TrueDub mencionó en su respuesta aceptada, debe agregar la clase donde se llama al constructor al @PrepareForTest
.
Sin embargo, si hace esto, la cobertura para esa clase según lo informado por eclemma y Sonar será cero para esa clase.
Wiki bajoterra
Vamos a reemplazar Javassist con ByteBuddy (# 727) y debería ayudar a resolver este problema anterior. Pero ahora mismo NO HAY MANERA DE USAR PowerMock con instrumentación sobre la marcha de JaCoCo. Y no hay solución para obtener cobertura de código en IDE.
Entonces, la solución aquí sería refactorizar el código real para usar una fábrica estática que devolvería una instancia de esa clase y luego simularla estáticamente.