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
Et l'importation manuelle ne fonctionne pas:
Mon auto-complétion fonctionne comme ceci
Mais devrait être ainsi
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'
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"
}
pour la migration androidX, ajoutez
androidTestImplementation "androidx.Arch.core:core-testing:2.0.0"
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
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!