screen robots: ui tests in espresso

26
Screen Robots @brwngrldev UI Tests in Espresso

Upload: annyce-davis

Post on 14-Apr-2017

222 views

Category:

Mobile


2 download

TRANSCRIPT

Screen Robots

@brwngrldev

UI Tests in Espresso

1. User Interface Testing 2. Espresso 3. Screen Robots

Agenda

@brwngrldev

UI Testing

@brwngrldev

UI element

UI Testing

@brwngrldev

UI Testing

@brwngrldev

Espresso

• Framework

• View Matchers

• View Assertions

• View Actions

@brwngrldev

Usage

@brwngrldev

Usage

@brwngrldev

Usage

@brwngrldev

@Testpublic void shouldProceedWithLoginWhenValid () {onView( withId( R.id.login_username_entry ) ).perform( typeText( TEST_EMAIL ) );

onView( withId( R.id.login_password_entry ) ).perform( typeText( TEST_PASSWORD ) );

onView( withId( R.id.login_button ) ).perform( click() );

intended( hasComponent( hasShortClassName( PACKAGE_NAME ) ) );}

@brwngrldev

@Testpublic void shouldProceedWithLoginWhenValid () {onView( withId( … ) ).perform( typeText( … ) );

onView( withId( … ) ).perform( typeText( … ) );

onView( withId( … ) ).perform( click() );…

}

@brwngrldev

@Testpublic void shouldProceedWithLoginWhenValid () {

< let’s do better />

}

@brwngrldev

@brwngrldev

@Testpublic void shouldProceedWithLoginWhenValid () {

}

@brwngrldev

@Testpublic void shouldProceedWithLoginWhenValid () {

withRobot( LoginScreenRobot.class )

}

@brwngrldev

@Testpublic void shouldProceedWithLoginWhenValid () {

withRobot( LoginScreenRobot.class ) .callLogin( TEST_EMAIL, TEST_PASSWORD )

}

@brwngrldev

@Testpublic void shouldProceedWithLoginWhenValid () {

withRobot( LoginScreenRobot.class ) .callLogin( TEST_EMAIL, TEST_PASSWORD )

.checkIsLoggedIn();}

@brwngrldev

@brwngrldev

Just 3 lines of code!

public LoginScreenRobot callLogin (String username, String password) {

}

@brwngrldev

Screen Robot

public LoginScreenRobot callLogin (String username, String password) {

return enterTextIntoView ( R.id.login_username_entry, username )

}

@brwngrldev

Screen Robot

public LoginScreenRobot callLogin (String username, String password) {

return enterTextIntoView ( R.id.login_username_entry, username ) .enterTextIntoView ( R.id.login_password_entry, password ) }

@brwngrldev

Screen Robot

public LoginScreenRobot callLogin (String username, String password) {

return enterTextIntoView ( R.id.login_username_entry, username ) .enterTextIntoView ( R.id.login_password_entry, password ) .clickOkOnView( R.id.login_button );}

@brwngrldev

Screen Robot

@brwngrldev

@brwngrldev

Test Scenarios• Login with valid credentials

• Login with invalid credentials

• Login with bad server response

• Changing the slide language

• Verifying the correctness of the slide content

• Entering content into a text slide

Summary

Screen Robots

User Interface Testing

Espresso

@brwngrldev

Thanks!

@brwngrldev +AnnyceDavis

www.adavis.info