-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
BugAny behaviour the deviates from the documentation, expected outcome or API contract.Any behaviour the deviates from the documentation, expected outcome or API contract.ExtensionRelates to one of the extension librariesRelates to one of the extension libraries
Description
Describe the bug
When using HiltAndroidRule from Dagger/Hilt 2.49+ with Testify, an IllegalStateException is thrown.
@HiltAndroidTest
class NavigationTest {
@get:Rule(order = 0)
var hiltRule = HiltAndroidRule(this)
@get:Rule(order = 1)
val rule = ComposableScreenshotRule(composeTestRule = createAndroidComposeRule(ComposableTestActivity::class.java))
@ScreenshotInstrumentation
@Test
fun default() {
rule
.setComposeActions { composeTestRule ->
composeTestRule.setContent {
MainNavigation()
}
}
.assertSame()
}
}This issue relates to:
- Compose Extension
- The Kotlin library
- The Gradle plugin
- The IntelliJ Platform plugin
- The sample code
- The documentation
To Reproduce
Related issue in Dagger: google/dagger#3394
java.lang.IllegalStateException: Given component holder class dev.testify.ComposableTestActivity does not implement interface dagger.hilt.internal.GeneratedComponent or interface dagger.hilt.internal.GeneratedComponentManager
at dagger.hilt.EntryPoints.get(EntryPoints.java:62)
at dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.createInternal(HiltViewModelFactory.java:206)
at dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.createInternal(HiltViewModelFactory.java:200)
at androidx.hilt.navigation.HiltViewModelFactory.create(HiltNavBackStackEntry.kt:77)
at androidx.hilt.navigation.compose.HiltViewModelKt.createHiltViewModelFactory(HiltViewModel.kt:57)
Example workaround:
https://github.com/android/nowinandroid/blob/main/ui-test-hilt-manifest/src/main/kotlin/com/google/samples/apps/nowinandroid/uitesthiltmanifest/HiltComponentActivity.kt
Metadata
Metadata
Assignees
Labels
BugAny behaviour the deviates from the documentation, expected outcome or API contract.Any behaviour the deviates from the documentation, expected outcome or API contract.ExtensionRelates to one of the extension librariesRelates to one of the extension libraries
Type
Projects
Status
No status