2015-10-28 21 views
8

Sto tentando di eseguire il test dalla pagina Writing Your First Test di Robolectric.org. Il test in questione si presenta così:importazione del metodo AssertThat corretto per il test di Robolectric

@Test 
    public void clickingLogin_shouldStartLoginActivity() { 
    WelcomeActivity activity = Robolectric.setupActivity(WelcomeActivity.class); 
    activity.findViewById(R.id.login).performClick(); 

    Intent expectedIntent = new Intent(activity, WelcomeActivity.class); 
    assertThat(shadowOf(activity).getNextStartedActivity()).isEqualTo(expectedIntent); 
    } 

ottengo questo errore di compilazione: Cannot resolve method 'assertThat(android.content.Intent).

Le due possibilità vedo per l'importazione di questo metodo sono org.hamcrest.MatcherAssert.assertThat e org.junit.Assert.assertThat, nessuno dei quali hanno una assertThat metodo a singolo argomento come viene utilizzato in questa prova Robolectric.

della mia app build.gradle ha queste dipendenze:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.1.0' 
    compile 'com.android.support:design:23.1.0' 

    testCompile "org.robolectric:robolectric:3.0" 
    testCompile 'junit:junit:4.12' 
} 

Quale quadro/biblioteca è questo test utilizzando?

+0

Non è né '' junit' o affermazioni hamcrest'. Penso che sia 'Android AssertJ' o semplicemente' AssertJ' –

+0

Così è stato. Grazie! Se vuoi pubblicare una risposta; Accetterò – Michiyo

+0

Puoi anche utilizzare google truth per le asserzioni: https://github.com/google/truth –

risposta

16

Non è né l'junit né l'API di asserzione hamcrest. Penso che sia Android AssertJ o semplicemente AssertJ:

testCompile 'org.assertj:assertj-core:1.7.1' 
+0

La dipendenza gradle era 'testCompile 'org.assertj: assertj-core: 1.7.1''. Le versioni 2 e 3 non sono compatibili con Android. – Michiyo

+0

Risposta aggiornata con dipendenza corretta. Controlla anche Android AssertJ da Square –

+6

Sarebbe stato bello se il tutorial robolectric menzionasse questo invece di StackOverflow –

2

seguire il seguente e la questione dovrebbe andare via. Mettere la prima linea in voi Gradle build

testCompile 'org.mockito:mockito-core:1.9.5' 
testCompile 'junit:junit:4.12' 

import org.junit.Test; 
import static org.hamcrest.CoreMatchers.is; 
import static org.hamcrest.MatcherAssert.assertThat; 

public class SomethingTest { 
    @Test 
    public void testSomething() { 
      assertThat(true, 1>1); 
    } 
} 

questo link dovrebbe fornire maggiori dettagli anche Android Studio and Robolectric

Problemi correlati