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

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

Этот класс устарел на уровне API 24. Использовать ActivityTestRule вместо. Новые тесты должны быть написаны с помощью Android Testing Support Библиотека.

Пример:

import android.app.Application;
import android.test.ApplicationTestCase;

/**
 * <a href="#" onclick="location.href='http://d.android.com/tools/testing/testing_android.html'; return false;">Testing Fundamentals</a>
 */
public class ApplicationTest extends ApplicationTestCase<Application> {
    public ApplicationTest() {
        super(Application.class);
    }
}

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


EDIT:

Я пытаюсь использовать 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 Test Case, ни Expresso не работает в Android API 24. Правильно ли это?


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

Ответы

Ответ 1

Новый пример 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'
})