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 ()