2015-10-28 27 views
8

Próbuję uruchomić test ze strony Robolectric.org na stronie Writing Your First Test. Dany test wygląda następująco:importowanie poprawnej metody AssertThat dla testu 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); 
    } 

otrzymuję ten błąd kompilacji: Cannot resolve method 'assertThat(android.content.Intent).

Dwie możliwości, które widzę dla importowania tej metody to: org.hamcrest.MatcherAssert.assertThat i org.junit.Assert.assertThat, z których żadna nie ma jednokrotnej metody assertThat, jak jest używana w tym teście Robolectric.

Moja aplikacji build.gradle ma następujące zależności:

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

Co ramy/biblioteki jest to badanie przy użyciu?

+0

To nie jest ani '' hamcrest' junit' lub twierdzenia. Myślę, że jest to 'Android AssertJ' lub po prostu' AssertJ' –

+0

Tak było. Dziękuję Ci! Jeśli chcesz opublikować odpowiedź; Zgodzę się. – Michiyo

+0

Możesz również użyć prawdy Google dla asercji: https://github.com/google/truth –

Odpowiedz

16

Nie jest to asercja o wartości junit lub . Myślę, że jest Android AssertJ lub po prostu AssertJ:

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

Zależność gradle to "testCompile" org.assertj: assertj-core: 1.7.1''. Wersje 2 i 3 nie są kompatybilne z systemem Android. – Michiyo

+0

Zaktualizowana odpowiedź z prawidłową zależnością. Sprawdź również Android AssertJ od Square –

+6

Byłoby miło, gdyby samouczek robolectric wspomniał o tym zamiast StackOverflow –

2

wykonaj następujące czynności i problem powinien zniknąć. Umieścić pierwszą linię w ty Gradle kompilacji

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); 
    } 
} 

ten link powinien podać więcej szczegółów również Android Studio and Robolectric