1717package com.android.example.compose.testing
1818
1919import androidx.activity.ComponentActivity
20+ import androidx.compose.foundation.clickable
2021import androidx.compose.material3.Text
2122import androidx.compose.runtime.Composable
23+ import androidx.compose.runtime.getValue
24+ import androidx.compose.runtime.mutableStateOf
25+ import androidx.compose.runtime.remember
26+ import androidx.compose.runtime.setValue
27+ import androidx.compose.ui.Modifier
28+ import androidx.compose.ui.test.assertIsDisplayed
2229import androidx.compose.ui.test.junit4.createAndroidComposeRule
2330import androidx.compose.ui.test.onNodeWithText
2431import androidx.compose.ui.test.performClick
2532import org.junit.Rule
2633import org.junit.Test
27- import com.example.compose.snippets.R
2834
29- class CommonPatternsSample {
35+ // [START android_snippets_compose_testing_common_patterns]
36+ class MyComposeTest {
3037
3138 @get:Rule
3239 val composeTestRule = createAndroidComposeRule<ComponentActivity >()
3340
3441 @Test
3542 fun myTest () {
36- // [START android_snippets_compose_testing_common_patterns]
3743 // Start the app
3844 composeTestRule.setContent {
3945 MyAppTheme {
40- MainScreen (uiState = exampleUiState, /* ... */ )
46+ MainScreen (uiState = exampleUiState)
4147 }
4248 }
43- val continueLabel = composeTestRule.activity.getString( R .string.next )
44- composeTestRule.onNodeWithText(continueLabel).performClick()
45- // [END android_snippets_compose_testing_common_patterns]
49+ composeTestRule.onNodeWithText( " Continue " ).performClick( )
50+
51+ composeTestRule.onNodeWithText( " Welcome " ).assertIsDisplayed()
4652 }
4753}
54+ // [END android_snippets_compose_testing_common_patterns]
4855
4956@Composable
5057fun MyAppTheme (content : @Composable () -> Unit ) {
@@ -53,10 +60,15 @@ fun MyAppTheme(content: @Composable () -> Unit) {
5360
5461@Composable
5562fun MainScreen (uiState : ExampleUiState ) {
56- Text (text = " Hello ${uiState.name} " )
57- Text (text = " Next" )
63+ var showWelcome by remember { mutableStateOf(false ) }
64+ if (showWelcome) {
65+ Text (text = " Welcome" )
66+ } else {
67+ Text (text = " Hello ${uiState.name} " )
68+ Text (text = " Continue" , modifier = Modifier .clickable { showWelcome = true })
69+ }
5870}
5971
6072data class ExampleUiState (val name : String )
6173
62- val exampleUiState = ExampleUiState (" world" )
74+ val exampleUiState = ExampleUiState (" world" )
0 commit comments