Study Record

[Android] 계측 테스트 - Compose 본문

안드로이드/compose

[Android] 계측 테스트 - Compose

초코초코초코 2023. 8. 31. 17:04
728x90

😶 Compose 이전 환경 설정

class TipUiTest {

    @get:Rule
    val composeTestRule = createComposeRule()
    
}

 

 

😶 UI 콘텐츠 설정

setContent 안에 UI 구성요소를 호출한다.

class TipUiTest {

    @get:Rule
    val composeTestRule = createComposeRule()
    
    @Test
    fun calculate_20_percent_tip() {
        composeTestRule.setContent {
            TipTimeTheme {
               TipTimeLayout()
            }
        }
    }
}

 

 

😶 특정 컴포저블 엑세스하기

onNodeWithText() 메서드로 특정 문자열이 포함된 컴포저블(ex. TextField)을 찾아 performTextInput() 메서드로 문자열을 입력한다.

class TipUiTest {

    @get:Rule
    val composeTestRule = createComposeRule()
    
    @Test
    fun calculate_20_percent_tip() {
        composeTestRule.setContent {
            TipTimeTheme {
               TipTimeLayout()
            }
        }
        
        // 특정 단어에 해당하는 컴포저블을 찾아 입력폼 입력하기
        composeTestRule.onNodeWithText("Bill Amount")
            .performTextInput("10")
        
    }
}

 

 

😶 어설션

assertExists() 메서드로 해당 컴포저블을 찾을 수 있는지 없는지 테스트한다.

class TipUiTest {

    @get:Rule
    val composeTestRule = createComposeRule()
    
    @Test
    fun calculate_20_percent_tip() {
        composeTestRule.setContent {
            TipTimeTheme {
               TipTimeLayout()
            }
        }
        
        // 특정 단어에 해당하는 컴포저블 찾기
        composeTestRule.onNodeWithText("Bill Amount")
            .performTextInput("10")
        
        // 해당 컴포저블을 찾을 수 없을 때 정해진 메세지가 
        composeTestRule.onNodeWithText("Tip Amount: ").assertExists(
            "No node with this text was found."
        )
    }
}
728x90

'안드로이드 > compose' 카테고리의 다른 글

[Android] Compose Appbar  (0) 2023.09.04
[Android] Compose 테마  (0) 2023.09.04
[Android] Compose 기초 - State, MutableState, remember  (0) 2023.08.30
[Android] Compose 기초  (0) 2023.08.29
[Android] Compose modifier(수정자)  (0) 2023.08.29