Android Compose 单元测试实践

Posted 苍溟丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 , 获取源码

以上是关于Android Compose 单元测试实践的主要内容,如果未能解决你的问题,请参考以下文章

Android Compose 单元测试

Android Compose 单元测试

Android单元测试实践

单元测试实践(SpringCloud+Junit5+Mockito+DataMocker)

单元测试-NUnit基础

单元测试不适用于 Android Studio 北极狐