4.16

安卓应用单元测试与 UI 测试
完善的测试体系是高质量应用的保障,以下是 Java 实现的测试框架与技术:

  1. 单元测试(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 activityRule = new ActivityScenarioRule<>(MainActivity.class);

@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'
}

posted @ 2025-04-16 21:01  Echosssss  阅读(7)  评论(0)    收藏  举报