Android Compose 单元测试

Posted 苍溟丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Compose 单元测试相关的知识,希望对你有一定的参考价值。

上一个只是做了一个简单的演示,现在我扩展一下,做一个页面的单元测试,就是登录页面,校验页面

单元测试内容

  • 登录输入框校验
  • 密码输入框校验
  • 网络请求校验
@MediumTest
@RunWith(JUnit4::class)
class AppUITests 
    @get:Rule
    val composeTestRule = createComposeRule()

    @Before
    fun setUp() 
        composeTestRule.setContent 
            MaterialTheme 
                Surface 
                    LoginCompose()
                
            
        
    
    
    @Test
    fun loginButtonClickWithWithNoInput() 
        composeTestRule.onNodeWithContentDescription(TestConstant.USER_LOGIN_BUTTON_NODE).performClick()
        assert(SpUtilsMMKV.getString("login_tip").equals("用户名不能为空"))
    

    @Test
    fun loginButtonClickWithWithInputUserNameNoPassword() 
        composeTestRule.onNodeWithContentDescription(TestConstant.USER_NAME_NODE).performTextInput("cangming007")
        composeTestRule.onNodeWithContentDescription(TestConstant.USER_LOGIN_BUTTON_NODE).performClick()
        assert(SpUtilsMMKV.getString("login_tip").equals("密码不能为空"))
    

    @Test
    fun loginButtonClickWithWithAllInput() 
        composeTestRule.onNodeWithContentDescription(TestConstant.USER_NAME_NODE).performTextInput("cangming007")
        composeTestRule.onNodeWithContentDescription(TestConstant.USER_PASSWORD_NODE).performTextInput("123456")
        composeTestRule.onNodeWithContentDescription(TestConstant.USER_LOGIN_BUTTON_NODE).performClick()
        assert(SpUtilsMMKV.getString("login_tip").equals("登录失败"))
    

参考资料

官方单元测试教程

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

Android Compose 单元测试

Android Compose 单元测试

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

compose HOC的单元测试

Jetpack Compose 和 Compose Navigation 如何处理 Android 活动?

Android如何进行单元测试(转)