web-dev-qa-db-fra.com

Impossible de résoudre le symbole InstantTaskExecutorRule

J'ouvre l'exemple de code BasicRxJavaSample (de cet article Room + RxJava ) L'essentiel est là:

@Rule
public InstantTaskExecutorRule instantTaskExecutorRule = 
    new InstantTaskExecutorRule();

Et BasicRxJavaSample est tout ok . Mais je ne peux pas appliquer cela dans mon test . C'est ce qui se passe:

Impossible de résoudre le symbole InstantTaskExecutorRule

 enter image description here

Et l'importation manuelle ne fonctionne pas:

 enter image description here

Mon auto-complétion fonctionne comme ceci  enter image description here

Mais devrait être ainsi

 enter image description here

Mon application build.gradle ( complet ici ):

// tests
testImplementation 'junit:junit:4.12'
androidTestCompile "com.Android.support:support-annotations:$supportVersion"
testImplementation "Android.Arch.core:core-testing:$archVersion"
// Test helpers for Room
testImplementation "Android.Arch.persistence.room:testing:1.0.0"
// https://github.com/mockito/mockito
testImplementation 'org.mockito:mockito-core:2.13.0'
androidTestImplementation 'org.mockito:mockito-Android:2.13.0'
// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'com.Android.support.test:rules:1.0.1'
androidTestImplementation 'com.Android.support.test:runner:1.0.1'
// https://developer.Android.com/topic/libraries/testing-support-library/packages.html
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
androidTestCompile 'com.Android.support.test.espresso:espresso-idling-resource:3.0.1'
10
tim4dev

Remplacez testImplementation par androidTestImplementation. Ainsi, les tests sur le dossier androidTest peuvent avoir accès à la bibliothèque.

dependencies {
    androidTestImplementation "Android.Arch.core:core-testing:1.0.0"
}
22
Paulo Pereira

pour la migration androidX, ajoutez 

androidTestImplementation "androidx.Arch.core:core-testing:2.0.0"
2
Abhilash Das

S'il vous plaît mettre ces deux dépendances dans votre fichier gradle,

dependencies {

    // Test helpers for LiveData
    testImplementation "Android.Arch.core:core-testing:1.0.0"

    // Test helpers for Room
    testImplementation "Android.Arch.persistence.room:testing:1.0.0"
}

Pour plus d’informations, cliquez sur ce lien, Guide d’intégration des composants de l’architecture Android

1
Fenil Patel

Je pense qu'il existe un conflit dans certaines des bibliothèques liées ..__ J'ai résolu ce problème en utilisant blockingGet () et blockingFirst ().

et finalement, j'ai utilisé https://developer.Android.com/training/testing/junit-runner.html#using-Android-test-orchestrator

androidTestUtil 'com.Android.support.test:orchestrator:1.0.1'

c'est ce dont vous avez besoin!

0
tim4dev