android testing - pic.huodongjia.com€¦ · s ½ Þ _ Ü ) r ñ Ó f void job1(); void job2(); int...
TRANSCRIPT
•
•
• Mockito
• Dagger
• CI
….
• Unit Test
•
• UI
UI
•
•
•
• 100%
int add (int a, int b) { return a + b;
}
assertEquals(add(1,2), 3 );
•
void job1(); void job2(); int job3();
assertEquals(job3_result, job3());
UI
•
•
•
•
Android Testing Framework
Espresso
@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())); }
UI
• UI
• UI
•
void business()
callback
IdleResource By
Espresso
Idle Resource
@Override boolean isIdleNow();
ResourceCallback.onTransitionToIdle();
okhttp3-idleresource
Mock
• Mock Object
• Mock Http
Mockito
• model UI
• model
@Test public void test1() { // mock MyClass test = Mockito.mock(MyClass.class);
// getUniqueId() when(test.getUniqueId()).thenReturn(43);
// mock assertEquals(test.getUniqueId(), 43); }
OkHttp MockWebServer
Mock Object
• Dagger2 —— DI
Dagger Components
• Module ——
• Component ——
• @Inject ——
Module Source1
Component
Module Source2
@Inject
App with inject point
Components
Module
TestModule
Dagger Management
• User Store
• Database Instance (SQLite)
• Retrofit Instance
Gitlab CI
• TDD ——
•
•
Thanks!