• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Robolectric Adventure
 

Robolectric Adventure

on

  • 1,527 views

My Robolectric overview done on Android meet-up hosted by Xebia ...

My Robolectric overview done on Android meet-up hosted by Xebia

The final code from the presentation with additional examples will be here:
https://github.com/emartynov/robolectric-presentation

Statistics

Views

Total Views
1,527
Views on SlideShare
1,527
Embed Views
0

Actions

Likes
1
Downloads
13
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Robolectric Adventure Robolectric Adventure Presentation Transcript

    • Robolectric Survival Guide
    • eBuddy• 2009 Chat (IM)• 2011 XMS• 2012 We started with RobolectricANDROID PRODUCTS HISTORY
    • Android!
    • Relationships• Java• Maven• Android• Unit tests
    • First Android JUnit Testimport org.junit.Before;import org.junit.Test;import static org.fest.assertions.api.Assertions.assertThat;public class MainActivityTest { private MainActivity activity; @Before public void setUp () throws Exception { activity = new MainActivity(); activity.onCreate( null ); } @Test public void checkInitialTexts () throws Exception { assertThat( activity.downloadButton.getText() ).isEqualTo( "Download" ); }}
    • First Android JUnit Test
    • Android Testing Options• No tests• POJO• Instrumental tests• Android sources• Mock Android• Robolectric!
    • What is inside• Parses resources• Intercepts loading Android classes• Rewrites method bodies with Javassist• Binds shadow objects to new Android objects• Proxies modified objects
    • First Robolectric Test
    • Key Points from Demo #1• Correct path to SDK in the local.properties• JUnit dependency before Android (IntelliJ IDEA)• @RunWith( RobolectricTestRunner.class)
    • Biggest Issue of Robolectric • Lack of documentation • Not many examples • Unscheduled releases • http://robolectric.blogspot.nl/ 2011/02/how-to-work-on- robolectric-in-parallel.html
    • Robolectric Drawbacks• Sometimes magic• PowerMock integration• Time of run for the first test
    • Shadowing• http://robolectric.blogspot.nl/2 011/01/how-to-create-your- own-shadow-classes.html• Bind shadow class• Use own Runner instead of Robolectric• (Submit pull request)
    • Dependency Injection
    • RoboGuice 2.0public class MainActivity extends RoboActivity implements View.OnClickListener{ @Inject Bus bus; @Override public void onCreate( Bundle savedInstanceState ) { bus.register( this ); } @Override public void onClick( View view ) { bus.post( new DownloadDataEvent( urlInput.getText().toString() ) ); }}
    • RoboGuice 2.0
    • Key Points from Demo #2• InjectingTestRunner• Own AbstractModule implementation• Run injections before every test method
    • Android Real Jar (Robolectric 2.0)• http://robolectric.blogspot.nl /2011/08/using-robolectric- with-real-android.html• Robolectric 2.0 alpha
    • Robolectric or not Robolectric• Not a question for me• Follow industry
    • Thank you!