unit tutorial test book java android android-gradle junit4 android-espresso

java - tutorial - Las pruebas de UI de café expreso no reconocen onView()



robotium (3)

He pasado todo el día armando pruebas de instrumentación Junit4 con Espresso, pero parece que no puedo dar ese paso final. No importa lo que haga, no reconocerá el método onView() . He probado varias versiones de SDK / support-lib y hasta ahora nada. He revisado todas las guías de instalación de google y muchas publicaciones de stackoverflow, convirtiendo esta aquí en mi última esperanza.

Versión de Gradle: com.android.tools.build:gradle:1.5.0

Archivo Gradle:

apply plugin: ''com.android.application'' apply plugin: ''com.google.gms.google-services'' android { compileSdkVersion 23 buildToolsVersion "23.0.2" useLibrary ''org.apache.http.legacy'' defaultConfig { applicationId "lv.my.android" minSdkVersion 9 targetSdkVersion 22 testApplicationId "lv.my.android.tests" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } packagingOptions { exclude ''LICENSE.txt'' exclude ''META-INF/DEPENDENCIES'' exclude ''META-INF/LICENSE'' exclude ''META-INF/NOTICE'' } compileOptions { sourceCompatibility = ''VERSION_1_7'' targetCompatibility = ''VERSION_1_7'' } signingConfigs { beta { storeFile file("beta.keystore") storePassword "betabuild" keyAlias "key" keyPassword "betabuild" } release } buildTypes { debug { debuggable true applicationIdSuffix ''.debug'' versionNameSuffix ''-DEV'' minifyEnabled false } beta { debuggable true applicationIdSuffix ''.beta'' versionNameSuffix ''-BETA'' signingConfig signingConfigs.beta minifyEnabled false } release { minifyEnabled false } } } dependencies { compile files(''src/main/libs/guice-3.0-no_aop.jar'') compile files(''src/main/libs/javax.inject-1.jar'') compile files(''src/main/libs/roboguice-2.0.jar'') compile files(''src/main/libs/junit-4.11.jar'') compile files(''src/main/libs/hamcrest-core-1.3.jar'') compile files(''src/main/libs/GeoLib.jar'') compile files(''src/main/libs/GeoPolygons.jar'') compile files(''src/main/libs/universal-image-loader-1.9.4.jar'') compile files(''src/main/libs/javax.annotation-3.2-b06-sources.jar'') compile ''uk.co.chrisjenx:calligraphy:2.1.0'' compile ''com.squareup:otto:1.3.5'' compile ''com.google.android.gms:play-services:6.5.87'' compile ''com.android.support:support-annotations:23.0.1'' compile ''com.android.support:appcompat-v7:23.0.1'' compile ''com.android.support:support-v4:23.0.1'' compile ''com.android.support:palette-v7:23.0.1'' compile ''com.google.code.findbugs:jsr305:2.0.1'' compile ''com.nineoldandroids:library:2.4.0'' compile ''pl.charmas.android:android-reactive-location:0.4@aar'' compile ''io.reactivex:rxjava:1.0.3'' compile files(''src/main/libs/FlurryAnalytics-6.1.0.jar'') compile ''com.github.castorflex.smoothprogressbar:library:1.1.0'' androidTestCompile ''com.android.support.test:testing-support-lib:0.1'' androidTestCompile''com.android.support.test:runner:0.4.1'' // Set this dependency to use JUnit 4 rules androidTestCompile''com.android.support.test:rules:0.4'' // Set this dependency to build and run Espresso tests androidTestCompile''com.android.support.test.espresso:espresso-core:2.2.1'' testCompile ''junit:junit:4.12'' testCompile "org.mockito:mockito-core:1.9.5" }

Mi prueba (ubicada en src/androidTest/java/lv/my/test )

package lv.my.test; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.LargeTest; import lv.my.android.activities.LoginActivity; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) @LargeTest public class LoginActivityTest { private String mStringToBetyped; @Rule public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule<>(LoginActivity.class); @Before public void initValidString() { } @Test public void changeText_sameActivity() { // onView not recognized here } }

PD. Yo uso roboguice ¿podría ser ese el problema?


Deberías usar una importación estática:

import static android.support.test.espresso.Espresso.onView;

o

import android.support.test.espresso.Espresso;

y llámalo de la siguiente manera

Espresso.onView()


Para ampliar lo que Egor ha sugerido, en Android Studio, una vez que obtenga el texto en rojo en onView() , simplemente presione alt + enter cuando aparezca la bombilla roja. A continuación, elija la importación estática .


Seguir escribiendo. Android Studio sugerirá las importaciones necesarias de Espresso, desde el ''adentro hacia afuera''. Por ejemplo: onView (withId ()) Primero detectará withId (), luego onView ()