Android JUnit: define una subclase de aplicación diferente
Así que para mi proyecto normal de Android, tengo lo siguiente en AndroidManifest.xml:
<application android:name=".utilities.App" ...> .... </application>
Y luego tengo mi clase de aplicación:
- Referencias de prueba de Eclipse + Android + JUnit android.os class = NoClassDefFoundError
- Servicio Android no lanzado por JUnit test
- Android: genera una intención simulada y devuelve algunos datos de intenciones
- Cómo obtener la salida de registro de Android mostrada con las pruebas de JUnit (utilizando JUnit nativo sin emulador)
- Proyecto de biblioteca de prueba autónoma no puede encontrar las clases de biblioteca
public class App extends Application { .... }
Y luego tengo un proyecto Android JUnit Test asociado con el proyecto de Android. Todo está muy bien y puedo escribir pruebas JUnit. Sin embargo, estoy tratando de ejecutar la cobertura de código con mis pruebas JUnit y estoy recibiendo resultados hinchados. La razón es porque mi clase App se llama y se inicializa como si mi aplicación realmente se inició. No quiero que mi clase de aplicación personalizada se ejecute cuando ejecuto las pruebas de JUnit o la cobertura de código. Cualquier configuración que necesitaría para las pruebas de JUnit irá en el método apropiado de JUnit setup()
. ¿Hay alguna manera de evitar que ejecute mi clase de aplicación personalizada o una forma en que las clases / métodos / líneas que se ejecutan debido a la creación de mi clase de aplicación no se cuentan para la cobertura de código?
- Android Studio JUnit pruebas Java puro
- Contexto de Android en pruebas de unidades que no son de actividad
- Intento de trozo de clase de actividad de Android con PowerMockito lanza RuntimeException "Stub!"
- Se ha producido un error en la ejecución de la prueba: La ejecución de la instrumentación ha fallado debido a que "Proceso se ha estropeado". Al probar varias actividades de Android
- ¿Cómo simular un clic de usuario a un elemento de vista de lista en junit testing?
- ¿Es posible definir Actividad dentro del proyecto de prueba de Android y ejecutar una prueba contra ella?
- Junit testing con gradle para un proyecto android
- IntelliJ IDEA con Junit 4.7 "!!! JUnit versión 3.8 o posterior esperado: "
Una solución temporal que he encontrado funcionará a menos que alguien tenga mejores ideas.
- Entra en AndroidManifest.xml del proyecto Android principal.
- Cambie el atributo android: name de ".utilities.App" a "android.app.Application"
- Ejecute la utilidad de cobertura de código / pruebas JUnit
- Cambie el atributo android: name de nuevo de "android.app.Application" a ".utilities.App"
- Vuelva a implementar la aplicación en el dispositivo (para que utilice la clase de aplicación correcta cuando se ejecuta externa a las pruebas de cobertura de código / JUnit)
Estoy seguro de que la verdadera solución es automatizar este proceso, pero soy demasiado perezoso para hacerlo, y sólo se siente mal y mal. Pero al menos es una solución a menos que alguien tenga alguna idea.
- Dónde empezar con Realidad Aumentada
- no se pudo instanciar com.google.android.youtube.player.YouTubePlayerView