Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Robolectric soporta el nivel API?

Tengo una prueba que me gustaría ejecutar con Robolectric, yo uso el 2.3-SNAPSHOT como mi APP utiliza el ActionbarCompat i necesario para utilizar 2.3-SNAPSHOT versión como Robolectric no pudo encontrar los temas de AppCompat antes. Así que configuro el Classpath en Eclipse y termino con esto:

java.lang.UnsupportedOperationException: Robolectric does not support API level 9, sorry! at org.robolectric.SdkConfig.<init>(SdkConfig.java:24) at org.robolectric.RobolectricTestRunner.pickSdkVersion(RobolectricTestRunner.java:288) at org.robolectric.RobolectricTestRunner.getEnvironment(RobolectricTestRunner.java:264) at org.robolectric.RobolectricTestRunner.access$100(RobolectricTestRunner.java:57) at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:186) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:172) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 

El Manifiesto de mi Proyecto de Prueba es así:

  • Entendimiento de isFinishing ()
  • Permiso de Firebase negado Error
  • ¿Cómo calcular la distancia entre dos dispositivos Android? (Bluetooth preferido)
  • Vista de lista con grupos en android
  • Android: establece el intervalo en SeekBar
  • No se puede resolver el símbolo HttpGet, HttpClient, HttpResponce en Android Studio
  •  <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.vendor.test" android:versionCode="1" android:versionName="1.0"> <application> <uses-library android:name="android.test.runner" /> </application> <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.vendor" /> </manifest> 

    Me quejo siempre sobre el nivel de API, no importa lo que uso.

    Alguien tiene este trabajo?

  • Android RelativeLayout: cómo alinearParentBottom cuando está envuelto en un ScrollView?
  • Detenga que Eclipse abra Logcat al ejecutar una aplicación para Android
  • Actividad de Map de Android se bloquea al salir Actividad
  • ¿Cómo hacer efecto de resplandor alrededor de un mapa de bits?
  • ¿Cómo textView.setText de hilo?
  • ¿Cómo se integra Robolectric, Maven, ActionBarSherlock (y preferiblemente + IntelliJ) en un proyecto de Android?
  • 3 Solutions collect form web for “¿Robolectric soporta el nivel API?”

    Actualización: La anotación es ahora @Config(sdk = 18) (o @Config(sdk = Build.VERSION_CODES.JELLY_BEAN_MR2) ) y el archivo de propiedades mencionado en el enlace ahora es robolectric.properties .

    Original Answer: Puede utilizar la anotación @Config para que Robolectric emule una versión de SDK. Usted puede poner esto:

     import org.robolectric.annotation.Config; @Config(emulateSdk = 18) // now @Config(sdk = 18) as of Robolectric 3.0 @RunWith(RobolectricTestRunner.class) public class SomeTest ... 

    Esto también es posible utilizando un archivo como se menciona aquí

    No está seguro de lo que significa para sus pruebas específicas de KitKat, pero al menos las otras deberían funcionar.

    En caso de que la gente como yo, sigue visitando el enlace para el error similar,

    @Config(emulateSdk = ) no funciona ahora. Su cambiado a sdk–
    @Config(constants = BuildConfig.class, sdk=21)

    Para mí, estaba recibiendo error con la versión de destino 22,

     java.lang.UnsupportedOperationException: Robolectric does not support API level 22 

    Y así lo emulaba a 21.

    Según SdkConfig.java , Roboeléctrico sólo admite las siguientes versiones / niveles de API:

     SUPPORTED_APIS.put(Build.VERSION_CODES.JELLY_BEAN, new SdkVersion("4.1.2_r1", "0")); SUPPORTED_APIS.put(Build.VERSION_CODES.JELLY_BEAN_MR1, new SdkVersion("4.2.2_r1.2", "0")); SUPPORTED_APIS.put(Build.VERSION_CODES.JELLY_BEAN_MR2, new SdkVersion("4.3_r2", "0")); SUPPORTED_APIS.put(Build.VERSION_CODES.KITKAT, new SdkVersion("4.4_r1", "0")); SUPPORTED_APIS.put(Build.VERSION_CODES.LOLLIPOP, new SdkVersion("5.0.0_r2", "0")); 

    ¿Estás seguro de que lo has probado?

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.