-
Notifications
You must be signed in to change notification settings - Fork 12
Espresso operations
Aleksei Tiurin edited this page Feb 10, 2021
·
16 revisions
Simple espresso operation looks like this
onView(withId(R.id.send_button)).check(isDisplayed()).perform(click())
the same with Ultron
withId(R.id.send_button).isDisplayed().click()
Names of all Ultron operations are the same as espresso one. There are a lot of additional operations those simplifies test development.
Specify page elements as properties of PageObject class.
object SomePage : Page<SomePage>() {
private val button = withId(R.id.button1)
private val eventStatus = withId(R.id.last_event_status)
}
Use this properties in page steps
object SomePage : Page<SomePage>() {
//page elements
fun someUserStepOnPage(expectedEventText: String){
button.click()
eventStatus.hasText(expectedEventText)
}
}
withId(R.id.last_event_status).withTimeout(10_000).isDisplayed()
There are 2 ways of using custom timeout:
- Specify it for page property and it will be applied for all operations with this element
object SomePage : Page<SomePage>() {
private val eventStatus = withId(R.id.last_event_status).withTimeout(10_000)
}
- Specify it inside special step there the element operation could take more time. This timeout value will be applied only once for single operation.
object SomePage : Page<SomePage>() {
fun someLongUserStep(expectedEventText: String){
longRequestButton.click()
eventStatus.withTimeout(20_000).hasText(expectedEventText)
}
}