ApplicationTestCase obsoleto en el nivel 24 de API

He creado un proyecto vacío predeterminado en Android Studio 2.1.2 con API 24 . En el proyecto de ejemplo, Google ofrece una clase depreciada ApplicationTestCase :

Esta clase ha quedado obsoleta en el nivel 24 de API. En su lugar, use ActivityTestRule. Las nuevas pruebas se deben escribir usando la Biblioteca de soporte de pruebas de Android.

Muestra:

import android.app.Application; import android.test.ApplicationTestCase; /** * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a> */ public class ApplicationTest extends ApplicationTestCase<Application> { public ApplicationTest() { super(Application.class); } } 

Mi pregunta: ¿Por qué Android Test Case está ahora obsoleto? Cómo reemplazar ApplicationTestCase por ActivityTestRule?


EDITAR:

Intento con Expresso , pero en API 24 ( compileSdkVersion 24 ) Tengo este error:

 Error:Conflict with dependency 'com.android.support:appcompat-v7'. Resolved versions for app (24.0.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details. Error:Conflict with dependency 'com.android.support:design'. Resolved versions for app (24.0.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details. Error:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (24.0.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details. Error:Conflict with dependency 'com.android.support:recyclerview-v7'. Resolved versions for app (24.0.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details. 

Cuando intento agregar esta lib en mi build.gradle:

 // Android JUnit Runner androidTestCompile 'com.android.support.test:runner:0.5' // JUnit4 Rules androidTestCompile 'com.android.support.test:rules:0.5' // Espresso core androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' // Espresso-contrib for DatePicker, RecyclerView, Drawer actions, Accessibility checks, CountingIdlingResource androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.2' // Espresso-web for WebView support androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.2' // Espresso-idling-resource for synchronization with background jobs androidTestCompile 'com.android.support.test.espresso:espresso-idling-resource:2.2.2' 

Mi conclusión es que, por el momento, ni Test Case de Android ni Expresso funciona en Android API 24 . ¿Es esto correcto?


EDIT: 2016-08-05

Puedo corregir el error anterior en Expresso así:

 def espressoVersion = '2.2.2' def testRunnerVersion = '0.5' androidTestCompile "com.android.support.test:rules:${testRunnerVersion}" androidTestCompile "com.android.support.test.espresso:espresso-core:${espressoVersion}" configurations.androidTestCompile.dependencies.each { androidTestCompileDependency -> androidTestCompileDependency.exclude group: 'com.android.support' } 

El nuevo ejemplo de androidTest que genera la versión beta de Android Studio 2.2, se parece a esto:

 @RunWith(AndroidJUnit4.class) public class ExampleInstrumentedTest { @Test public void useAppContext() throws Exception { // Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); assertEquals("org.mypackage", appContext.getPackageName()); } } 

Al igual que sugiere la advertencia de depreciación, las nuevas pruebas de instrumentación deben utilizar InstrumentationRegistry lugar de extender desde AndroidTestCase . Ejecutarlos con AndroidJUnit4 .

La sección de dependencies relevantes en build.gradle tiene este aspecto:

 androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) 
  • Optimizar el esfuerzo de prueba de Android
  • ProviderTestCase2.getProvider () es nulo
  • Prueba de GPS en Android
  • Android: ejecución de pruebas instrumentadas en el servidor de TeamCity
  • Espresso prueba pegado / inactivo después de realizar (haga clic ()) en el botón en ViewAnimator
  • Soluciones actuales para probar aplicaciones de Android
  • Prueba de AdMob antes de publicar
  • Cómo inyectar el evento de clic con Android UiAutomation.injectInputEvent
  • Prueba de suscripción en Android: elemento no encontrado
  • Android en las pruebas de suscripción de aplicaciones
  • Mockito en el emulador de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.