I'm testing the launch of a fragment inside my activity, so after performing a click on button that going to launch the fragment, I tested the existing of a text on view inside the launched fragment, but the test fail even though that fragment is launched on my phone, and even in the View Hierarchy is showing that the text exist :
View Hierarchy:
+--------->AppCompatTextView{id=2131886318, res-name=text3_textView, visibility=VISIBLE, width=768, height=68, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=695.0, text=Pour finaliser votre inscription nous avons besion
d'une photo de profil, input-type=0, ime-target=false, has-links=false}
The test fail here :
onView(withText("photo de profil")).check(matches(isDisplayed()));
I'm wondering why espresso fail this test, is it because it doesn't wait for the launch of the fragment?
Btw I turned animations off.
What I was doing:
@Rule
@JvmField
var mActivityTestRule = ActivityTestRule(SplashScreenActivity::class.java)
Due to this rule, the Espresso Library was searching for the login EditText
view on the SplashScreenActivity
. The sad part was, this login EditText
view was actually present in the LoginActivity
as a result the test cases failed with the above-mentioned error.
What I did to make everything work:
@Rule
@JvmField
var mActivityTestRule = ActivityTestRule(LoginActivity::class.java)
As soon as I changed the Activity
from SplashScreenActivity
to LoginActivity
in the above rule. Espresso easily found this login EditText
view and all the tests passed.
Just make sure you are pointing Espresso to the correct Activity
/Fragment
where the View
is actually present.
The espresso withText method match that all the string is equal.
In your case you need to match if the string ends with your string.
Your code should be this:
onView(withText(endsWith("photo de profil"))).check(matches(isDisplayed()));
Here you have more examples: http://qathread.blogspot.com.br/2014/01/discovering-espresso-for-android.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With