AssertionFailedError en ApplicationTestCase.createApplication () en versiones más recientes de Android cuando se usa MockContext

Estoy escribiendo un ApplicationTestCase para Android (ejemplo de TemperatureConverterApplicationTests que se encuentra enGuía de prueba de aplicaciones de Android por Diego T. Milano en la página 171). El ejemplo fue escrito para Android 2.3 y no parece funcionar con Android 4. No es necesario que conozca el libro para entender el problema, ya que lo he simplificado.

Esto funciona bien conAndroid 2.3.3 (API 10):

setContext(new MockContext());
createApplication();

[Para ser precisos, se emite una excepción UnsupportedOperationException porque no se implementó getPackageName (). Pero esto es normal y se puede resolver utilizando una subclase de MockContext () que implementa getPackageName () y getSharedPreferences (). Esto no es relevante porque el problema todavía existe incluso después de hacer esto.]

El problema es que conAndroid 4.1.2 (API 16) no funciona. Recibo un error AssertionFailedError que, a través de un poco de depuración, descubrí que se debía a una excepción ClassCastException en la línea 100 de ApplicationTestCase.

mApplication = (T) Instrumentation.newApplication(mApplicationClass, getContext());

losClassCastException el mensaje es:

java.lang.ClassCastException: android.test.mock.MockContext cannot be cast to android.app.ContextImpl

¿Alguna sugerencia de por qué sucede esto y cómo puede evitarse?

EDITAR: Pregunta relacionada:Android ApplicationTestCase usando un MockContext

Respuestas a la pregunta(2)

Su respuesta a la pregunta