4.16
安卓应用单元测试与 UI 测试
完善的测试体系是高质量应用的保障,以下是 Java 实现的测试框架与技术:
- 单元测试(JUnit + Mockito)
java
import static org.junit.Assert.;
import static org.mockito.Mockito.;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class CalculatorTest {
private Calculator calculator;
@Mock
private CalculatorService service;
@Before
public void setUp() {
calculator = new Calculator(service);
}
@Test
public void testAdd() {
when(service.add(2, 3)).thenReturn(5);
assertEquals(5, calculator.add(2, 3));
}
}
2. UI 测试(Espresso)
java
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import androidx.test.ext.junit.rules.ActivityScenarioRule;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class MainActivityTest {
@Rule
public ActivityScenarioRule
@Test
public void testButtonClick() {
onView(withId(R.id.button)).perform(click());
onView(withId(R.id.textView)).check(matches(withText("Button Clicked")));
}
}
3. 测试资源配置
在 build.gradle 中添加依赖:
groovy
dependencies {
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:4.8.1'
androidTestImplementation 'androidx.test🏃1.5.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}
浙公网安备 33010602011771号