You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求荐Android自动化测试Espresso零基础入门教程

Hey there! 从Appium转Espresso确实需要一点适应,但别担心,我整理了一套零基础友好的入门步骤,完全适配Android Studio新手:

零基础Espresso入门指南(适配Android Studio新手)

第一步:先搞定Android Studio基础

  • 启动Android Studio后,跟着首次安装配置向导完成操作,它会自动帮你下载SDK、模拟器等必备工具,不用手动折腾
  • 新建一个最简单的Empty Activity项目,先熟悉核心项目结构:
    • res/layout:存放界面布局文件
    • java/com/xxx/:存放业务代码和测试代码
    • build.gradle(模块级):用来配置项目依赖

第二步:快速理解Espresso核心逻辑

Espresso是Android官方的UI自动化框架,核心就三个关键动作,记好这三点就能写基础测试:

  • onView():定位你要操作的UI控件
  • perform():对控件执行操作(比如点击、输入文本)
  • check():验证操作后的结果是否符合预期

举个最直观的例子:

// 点击ID为my_button的按钮
onView(withId(R.id.my_button)).perform(click());
// 验证ID为result_text的控件显示指定文本
onView(withId(R.id.result_text)).check(matches(withText("Hello Espresso!")));

第三步:配置Espresso依赖

打开模块级的build.gradle文件(注意不是项目根目录的那个),在dependencies代码块中添加以下依赖:

androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'

点击右上角的Sync Now按钮,等待依赖下载同步完成。

第四步:写你的第一个Espresso测试

  • 找到androidTest/java/com/your/package/目录,右键新建一个测试类,比如MainActivityTest
  • 复制以下示例代码(记得替换成你自己项目的控件ID):
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;
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;

@RunWith(AndroidJUnit4.class)
public class MainActivityTest {

    // 自动启动MainActivity
    @Rule
    public ActivityScenarioRule<MainActivity> activityRule =
            new ActivityScenarioRule<>(MainActivity.class);

    @Test
    public void clickButton_ShowsExpectedText() {
        // 点击按钮
        onView(withId(R.id.test_button)).perform(click());
        // 验证文本是否正确显示
        onView(withId(R.id.result_tv)).check(matches(withText("按钮已点击!")));
    }
}
  • 右键点击测试方法,选择Run,就能在模拟器或真机上运行你的第一个Espresso测试啦!

第五步:后续进阶方向

  • 学习更多控件定位Matcher:比如withText()withContentDescription(),或者自定义Matcher处理复杂控件
  • 了解ActivityScenario的用法,灵活控制Activity的启动和生命周期
  • 学习处理异步操作(比如网络请求),可以用IdlingResource等待异步任务完成

内容的提问来源于stack exchange,提问作者sandy

火山引擎 最新活动