Download presentation
Presentation is loading. Please wait.
Published byHarold Willis Modified over 9 years ago
1
Robolectric (version 2.4 기준 )
2
class AbcTest { @BeforeClass public static void setUpOnce() { } @Before public void setUp(){} @Test public void testA() { … assert(); } @Test public void testB() { … assert(); } @After public void tearDown(){} @AfterClass public static void tearDownOnce() {} } @BeforeClass @Before @Test @After @AfterClass
3
src/androidTest/java/ src/androidTest/res/org.robolectrc.Config.properties Api version < 19 emulateSdk = 18 #manifest=../CoupangAndroid/src/main/AndroidManifest.xml #resourceDir =../../../CoupangAndroid/build/intermediates/res/debug manifest=CoupangAndroid/src/main/AndroidManifest.xml resourceDir =../../../CoupangAndroid/build/intermediates/res/debug
4
Run configuration All test Class/Method test Test Report gradlew jacocoReportTest
5
Log / Shadow @RunWith(value = RobolectricTestRunner.class) public class RobolectricExampleTest { @Test public void testLog() { Log.e("tag", "test1"); ShadowLog.stream = System.out; Log.e("tag", "test2"); View v = new View(Robolectric.application); v.getOnClickListener(); // error ShadowView shadow = Robolectric.shadowOf(v); shadow.getOnClickListener(); } E/tag: test2
6
Activity life cycle, Reflection @Test public void testClickOn() { MyCoupangActivity act = Robolectric.buildActivity(MyCoupangActivity.class).create().visible().get(); View v = act.findViewById(R.id.ibt_mycoupang_login); Robolectric.clickOn(v); } @Test public void testHasHoneycomb() { Robolectric.Reflection.setFinalStaticField( Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.HONEYCOMB); assertTrue(VersionUtils.hasHoneycomb()); Robolectric.Reflection.setFinalStaticField( Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.GINGERBREAD); assertFalse(VersionUtils.hasHoneycomb()); }
7
startActivity @Test public void testStartActivity() { OnClickListener listener = new OnClickListener() { @Override public void onClick(View view) { Context context = view.getContext(); context.startActivity(new Intent(context, WebViewActivity.class)); } }; Activity activity = Robolectric.buildActivity(Activity.class).create().get(); Button btn = new Button(activity); btn.setOnClickListener(listener); btn.performClick(); ShadowActivity shadowActivity = Robolectric.shadowOf(activity); Intent intent = shadowActivity.getNextStartedActivity(); ShadowIntent shadowIntent = Robolectric.shadowOf(intent); assertThat(shadowIntent.getComponent().getClassName(), equalTo(WebViewActivity.class.getName())); }
8
Display @Test public void testSpToPixel() throws Exception { new Display(); // error Display display = Robolectric.newInstanceOf(Display.class); ShadowDisplay shadowDisplay = Robolectric.shadowOf(display); shadowDisplay.setScaledDensity(2F); // XHDPI = 2F Robolectric.setDefaultDisplay(display); assertThat(WidgetUtil.spToPixel(20), is(40)); } @Test public void testAdjustHeight() throws Exception { Context context = Robolectric.getShadowApplication().getApplicationContext(); WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); ShadowDisplay shadowDisplay = Robolectric.shadowOf(windowManager.getDefaultDisplay()); shadowDisplay.setWidth(720); shadowDisplay.setHeight(1280); assertThat(WidgetUtil.adjustHeight(context, 80, 60), is(540)); }
9
Networking @Test public void testHttpResponse() throws Exception { final int RESPONSE_NUM = 200; final String BODY = "test body"; Robolectric.addPendingHttpResponse(RESPONSE_NUM, BODY); DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet request = new HttpGet("http://example.com"); HttpResponse res = httpClient.execute(request); int resNum = res.getStatusLine().getStatusCode(); String str = EntityUtils.toString(res.getEntity()); assertThat(resNum, equalTo(RESPONSE_NUM)); assertThat(str, allOf(equalTo(BODY), instanceOf(String.class))); } AsyncTask : SplashActivityTest.java Examples : …/resttemplate/*.java Robolectric.getFakeHttpLayer().interceptHttpRequests(false)
10
Fragment @Test public void testFragment() { MyCoupangActivity act = Robolectric.buildActivity(MyCoupangActivity.class).create().get(); FragmentManager man = act.getSupportFragmentManager(); man.beginTransaction().add(new Fragment(), "1").commit(); Fragment f = man.findFragmentByTag("1"); assertThat(f, notNullValue()); }
11
Shadow protected void onCreate(Bundle savedInstanceState) { … View v = findViewById(…); v.setOnClickListener(…); } View android view class MyShadowView { … public void onClickListerner(…) { throw new Exception(); } } class MyShadowView { … public void onClickListerner(…) { throw new Exception(); } }
12
Thank you! Forward Ventures LLC Korea, F7 736-6 YecksamDong, Gangnam-gu, Seoul, Korea
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.