ApplicationTestCase устарел на уровне API 24

Я создал пустой проект по умолчанию на Android Studio 2.1.2 с API 24 . В примере проекта Google предлагает обесцененный класс ApplicationTestCase :

Этот класс устарел на уровне API 24. Вместо этого используйте ActivityTestRule. Новые тесты должны быть написаны с использованием библиотеки поддержки тестирования Android.

Образец:

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); } } 

Мой вопрос: почему Android Test Case теперь устарел? Как заменить ApplicationTestCase на ActivityTestRule?


РЕДАКТИРОВАТЬ:

Я пытаюсь использовать Expresso , но на API 24 ( compileSdkVersion 24 ) у меня есть эта ошибка:

 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. 

Когда я пытаюсь добавить эту lib в мой 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' 

Я пришел к выводу , что на Android API 24 не работает ни Android Test Case, ни Expresso . Это правильно?


EDIT: 2016-08-05

Я исправляю предыдущую ошибку на Expresso следующим образом:

 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' } 

Solutions Collecting From Web of "ApplicationTestCase устарел на уровне API 24"

Новый пример androidTest, который генерирует бета-версия Android Studio 2.2, выглядит следующим образом:

 @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()); } } 

Подобно предупреждению об отставке, новые контрольные тесты должны использовать InstrumentationRegistry вместо того, чтобы расширяться с AndroidTestCase . Запустите их с помощью AndroidJUnit4 .

Соответствующий раздел dependencies в build.gradle выглядит так:

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