versiones utilizadas ultimas que porcentaje obsoleto mejor mas celular antiguas android testing android-testing

android - utilizadas - ApplicationTestCase obsoleto en nivel de API 24



whatsapp android obsoleto (1)

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

Esta clase quedó obsoleta en el nivel 24 de API. Use ActivityTestRule en su lugar. Las nuevas pruebas se deben escribir usando la biblioteca de soporte de prueba 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 ahora está en desuso? Cómo reemplazar ApplicationTestCase por ActivityTestRule?

EDITAR:

Lo 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 Android Test Case ni Expresso funcionan en Android API 24 . ¿Es esto correcto?

EDITAR: 2016-08-05

Corrijo 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 ve así:

@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 desaprobación, las nuevas pruebas de instrumentación deberían usar InstrumentationRegistry lugar de extenderse desde AndroidTestCase . Ejecútelos con AndroidJUnit4 .

La sección de dependencies relevantes en build.gradle ve así:

androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', { exclude group: ''com.android.support'', module: ''support-annotations'' })