2016-06-14 32 views
6

Sto riscontrando problemi nell'importazione di alcuni degli schemi di test dell'interfaccia utente Android - Non riesco a capire cosa sta andando storto!Perché non posso importare AndroidJUnit4 e ActivityTestRule nella mia classe di test dell'unità?

Questa è la mia classe:

@RunWith(AndroidJUnit4.class) 
@LargeTest 
public class ExampleUnitTest { 

@Rule 
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class); 

@Test 
public void listGoesOverTheFold() { 
    onView(withText("Hello world!")).check(matches(isDisplayed())); 
} 

}

Ma per qualche motivo ricevo errori 'non riesce a trovare il simbolo ActivityTestRule' e 'non riesce a trovare il simbolo AndroidJUnit4'. Ho provato a importarli ma non possono essere trovati.

Le dipendenze in build.gradle sono impostati:

compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.4.0' 
androidTestCompile 'com.android.support:support-annotations:23.4.0' 

androidTestCompile 'com.android.support.test:runner:0.4' 
androidTestCompile 'com.android.support.test:rules:0.4' 
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' 
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2' 

Quindi credo di avere tutta la messa a punto delle dipendenze - Ho cercato molte cose, ma senza fortuna.

Qualcuno ha qualche idea?

+0

Qual è la vostra directory di classe di test in - 'test/java' o' androidTest/java'? – Jahnold

+0

È sotto test/java – Hallupa

risposta

18

Ci sono due diversi tipi di test che si possono impostare in Android

Unità Test

  • Questi eseguito direttamente sulla JVM e non hanno accesso alle classi del framework Android.
  • Sono tenute nel pacchetto test/java
  • dipendenze devono aggiungere nel file build.gradle con il comando testCompile
  • Si usano generalmente Mockito, Robolectric & JUnit per questi test

Test Strumentazione

  • Questi funzionano su un emulatore Android e hanno pieno l'accesso a tutte le classi Android
  • Sono tenute nel pacchetto androidTest/java
  • dipendenze devono essere aggiunto al build.gradle con androidTestCompile
  • È generalmente utilizzano Espresso e JUnit per questi test

Da quello che Posso dire che stai provando a scrivere test di strumentazione con Espresso ma hai il tuo test nel pacchetto test/java che è per i test unitari. In tal caso è necessario spostare la classe di test sul pacchetto androidTest/java.

+0

Grazie, è risolto! Non avevo capito che c'era una differenza tra test/java e androidTest/java – Hallupa

4

bisogno di questo componente aggiuntivo dipendenze

testCompile 'com.android.support.test:rules:0.5' 
testCompile 'com.android.support.test:runner:0.5' 
Problemi correlati