Android Compose 单元测试实践

前言

做 Android 开发多年,一直欠下不少单元测试的账,最近发现Compose 这套新的UI 系统可以单元测试,初步做了一下调研,发现可行,因为有官方的背书。

学到什么

  1. Compose 集成
  2. 官方支持的页面单元测试方法
  3. Hilt Dagger2 的集成

运行结果

在这里插入图片描述

核心实现思路

主要是项目用到的 dagger,现在官方很推荐这个依赖注入框架,由于dagger 和 Compose 的结合才令页面单元测试得以实现。

添加依赖

    androidTestImplementation(libs.junit)
    androidTestImplementation(libs.androidx.test.core)
    androidTestImplementation(libs.androidx.test.runner)
    androidTestImplementation(libs.androidx.test.espresso.core)
    androidTestImplementation(libs.androidx.test.rules)
    androidTestImplementation(libs.androidx.test.ext.junit)
    androidTestImplementation(libs.kotlinx.coroutines.test)
    androidTestImplementation(libs.androidx.compose.ui.test)
    androidTestImplementation(libs.androidx.compose.ui.test.junit4)
    androidTestImplementation(libs.hilt.android.testing)
    coreLibraryDesugaring(libs.core.jdk.desugaring)
    kaptAndroidTest(libs.hilt.compiler)
@HiltAndroidTest
class HomeTest {

    @get:Rule(order = 0)
    var hiltRule = HiltAndroidRule(this)

    @get:Rule(order = 1)
    val composeTestRule = createAndroidComposeRule<MainActivity>()

    @Test
    fun home_navigatesToAllScreens() {
        composeTestRule.onNodeWithText("Test...Test...Test...").assertIsDisplayed()
    }
}

官方项目(Compose+单元测试)参考

官方 Sample Jetchat

官方Sample JetNes

项目源码

关注公众号,发送关键词 unit , 获取源码
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值