android testing - pic.huodongjia.com€¦ · s ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int...
TRANSCRIPT
![Page 3: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/3.jpg)
•
•
• Mockito
• Dagger
• CI
![Page 4: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/4.jpg)
….
![Page 5: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/5.jpg)
• Unit Test
•
• UI
![Page 6: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/6.jpg)
UI
![Page 7: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/7.jpg)
•
•
•
• 100%
![Page 8: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/8.jpg)
int add (int a, int b) { return a + b;
}
assertEquals(add(1,2), 3 );
![Page 9: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/9.jpg)
•
![Page 10: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/10.jpg)
void job1(); void job2(); int job3();
assertEquals(job3_result, job3());
![Page 11: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/11.jpg)
UI
•
•
•
•
![Page 12: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/12.jpg)
Android Testing Framework
Espresso
![Page 13: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/13.jpg)
@Test public void greeterSaysHello() { onView(withId(R.id.name_field)) .perform(typeText(“Steve"));
onView(withId(R.id.greet_button)) .perform(click());
onView(withText("Hello Steve!")) .check(matches(isDisplayed())); }
![Page 14: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/14.jpg)
UI
• UI
• UI
•
![Page 15: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/15.jpg)
![Page 16: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/16.jpg)
![Page 17: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/17.jpg)
![Page 18: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/18.jpg)
![Page 19: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/19.jpg)
![Page 20: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/20.jpg)
void business()
callback
IdleResource By
Espresso
![Page 21: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/21.jpg)
Idle Resource
@Override boolean isIdleNow();
ResourceCallback.onTransitionToIdle();
okhttp3-idleresource
![Page 22: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/22.jpg)
Mock
• Mock Object
• Mock Http
![Page 23: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/23.jpg)
Mockito
• model UI
• model
![Page 24: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/24.jpg)
@Test public void test1() { // mock MyClass test = Mockito.mock(MyClass.class);
// getUniqueId() when(test.getUniqueId()).thenReturn(43);
// mock assertEquals(test.getUniqueId(), 43); }
![Page 25: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/25.jpg)
OkHttp MockWebServer
![Page 26: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/26.jpg)
Mock Object
• Dagger2 —— DI
![Page 27: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/27.jpg)
Dagger Components
• Module ——
• Component ——
• @Inject ——
![Page 28: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/28.jpg)
Module Source1
Component
Module Source2
@Inject
![Page 29: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/29.jpg)
![Page 30: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/30.jpg)
![Page 31: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/31.jpg)
![Page 32: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/32.jpg)
![Page 33: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/33.jpg)
App with inject point
Components
Module
TestModule
![Page 34: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/34.jpg)
Dagger Management
• User Store
• Database Instance (SQLite)
• Retrofit Instance
![Page 35: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/35.jpg)
Gitlab CI
![Page 36: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/36.jpg)
![Page 37: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/37.jpg)
• TDD ——
•
•
![Page 38: Android Testing - pic.huodongjia.com€¦ · S ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int job3(); assertEquals(job3_result, job3());](https://reader034.vdocuments.us/reader034/viewer/2022042400/5f0f2f077e708231d442e6de/html5/thumbnails/38.jpg)
Thanks!