2016-06-30 4 views
0

Я никогда раньше не использовал какой-либо JUnit, поэтому из того, что я ищу, есть хороший инструмент под названием roboelectric.Roboelectric testing

Я пытаюсь выполнить простой тест, как показано на их веб-сайте, но assertThat() и shadowOf() не распознаются.

Вот тест

@RunWith(RobolectricTestRunner.class) 
@Config(constants = BuildConfig.class) 
public class MainActivityTest { 

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

    Intent expectedIntent = new Intent(activity, LoginActivity.class); 
    //This line doesn't work.   
    assertThat(shadowOf(activity).getNextStartedActivity()). 
    isEqualTo(expectedIntent); 

    } 
} 

И это, как я установил Roboelectric в Gradle.

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 24 
buildToolsVersion "24.0.0" 

defaultConfig { 
    applicationId "testing.theo.robotutorial" 
    minSdkVersion 14 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro' 
    } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.0.0' 
    testCompile "org.robolectric:robolectric:3.0" 


} 

Любые идеи?

Спасибо.

ответ

1

Заменить следующим утверждением будет.

assertTrue(shadowOf(activity).getNextStartedActivity().filterEquals(expectedIntent)); 

Вы можете обратиться, чтобы ответить на Hoisie в Roboelectric github issue #2627 для деталей.

Смежные вопросы