unitarias unit test studio pruebas mock example android junit testcase

test - java.lang.NoClassDefFoundError: prueba de Android y Junit



mockito android (2)

No estoy seguro de si tuve el mismo problema que tú, pero estoy usando gradle y, por alguna razón, las pruebas ya no se realizarían, con el mismo error que tenías. Traté de limpiar y reconstruir, pero fue en vano. Después de horas de frustración y tratando de encontrar una respuesta, encontré la solución simple en un hilo de GitHub:

Resolví este problema eliminando la carpeta .gradle en mi proyecto y reconstruyendo el proyecto.

(gracias a vpetrov)

Vi que no soy el único que tiene este problema, pero no encuentro la respuesta correcta. Tengo un proyecto de Android que quiero probar. Creo una clase de prueba junit para cada clase de mi proyecto. Mi problema es cuando ejecuto mi prueba, tengo el siguiente error:

java.lang.NoClassDefFoundError: android/content/Context

Esta es mi prueba de clase:

public class DevicesBDDTest extends TestCase { DevicesBDD bdd; /** * @throws java.lang.Exception */ protected static void setUpBeforeClass() throws Exception { } /** * @throws java.lang.Exception */ protected static void tearDownAfterClass() throws Exception { } protected void setUp() throws Exception { super.setUp(); Context ctx = mock(Context.class); final MaBaseSQLiteInterface mockMaBaseSQLite = mock(MaBaseSQLiteInterface.class); bdd = new DevicesBDD(ctx){ @Override public MaBaseSQLiteInterface createMaBaseSQlite(Context context) { return mockMaBaseSQLite; } }; } protected void tearDown() throws Exception { super.tearDown(); } public void test() { assertEquals(1, 1); } }

Mi clase DevicesBDD necesita un contexto de objeto, por lo tanto creo un simulacro (con mockito). Intenté con un objeto MockContext también, pero no funciona.

Este es mi Java Build Path:

  • mockito-all-1.9.5.jar
  • Android 2.1 -> android.jar
  • Dependencias de Android -> anotaciones.jar
  • Junit 3 -> junit.jar

Puede ejecutar ./gradlew clean test en el terminal.