Skip to content

Commit 652f16b

Browse files
committed
add Glance unit testing snippet
1 parent 27c462c commit 652f16b

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

compose/snippets/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,4 +163,6 @@ dependencies {
163163
androidTestImplementation(libs.androidx.compose.ui.test.junit4.accessibility)
164164
debugImplementation(libs.androidx.compose.ui.test.manifest)
165165

166+
androidTestImplementation(libs.androidx.glance.testing)
167+
androidTestImplementation(libs.androidx.glance.appwidget.testing)
166168
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.example.compose.snippets.glance
2+
3+
import androidx.compose.runtime.Composable
4+
import androidx.glance.GlanceModifier
5+
import androidx.glance.appwidget.testing.unit.runGlanceAppWidgetUnitTest
6+
import androidx.glance.layout.Row
7+
import androidx.glance.semantics.semantics
8+
import androidx.glance.semantics.testTag
9+
import androidx.glance.testing.unit.assertHasText
10+
import androidx.glance.testing.unit.hasTestTag
11+
import androidx.glance.text.Text
12+
import org.junit.Test
13+
14+
// [START android_compose_glance_unit_test]
15+
private const val FAKE_HEADLINE = "EXTRA! EXTRA! READ ALL ABOUT IT!"
16+
17+
class MyGlanceComposableTest {
18+
@Test
19+
fun myNewsItemComposable_largeSize_hasHeadline() = runGlanceAppWidgetUnitTest {
20+
// Set the composable to test
21+
provideComposable {
22+
MyNewsItemComposable(FAKE_HEADLINE)
23+
}
24+
25+
// Perform assertions
26+
onNode(hasTestTag("headline"))
27+
.assertHasText(FAKE_HEADLINE)
28+
}
29+
30+
31+
@Composable
32+
fun MyNewsItemComposable(headline: String) {
33+
Row {
34+
Text(
35+
text = headline,
36+
modifier = GlanceModifier.semantics { testTag = "headline" },
37+
)
38+
}
39+
}
40+
}
41+
// [END android_compose_glance_unit_test]

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ androidx-emoji2-views = { module = "androidx.emoji2:emoji2-views", version.ref =
126126
androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "androidx-fragment-ktx" }
127127
androidx-glance-appwidget = { module = "androidx.glance:glance-appwidget", version.ref = "androidx-glance-appwidget" }
128128
androidx-glance-material3 = { module = "androidx.glance:glance-material3", version.ref = "androidx-glance-appwidget" }
129+
androidx-glance-testing = { group = "androidx.glance", name = "glance-testing", version.ref = "androidx-glance-appwidget" }
130+
androidx-glance-appwidget-testing = { group = "androidx.glance", name = "glance-appwidget-testing", version.ref = "androidx-glance-appwidget" }
129131
androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.1"
130132
androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" }
131133
androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle-runtime-compose" }

0 commit comments

Comments
 (0)