user7029573
user7029573

Reputation: 73

Android unit test case error when using hilt and roboelectric

I am trying to write unit test case for my compose screen. I am using roboelectric and hilt. But when i run test its throwing error Given component holder class androidx.activity.ComponentActivity does not implement interface dagger.hilt.internal.GeneratedComponent or interface dagger.hilt.internal.GeneratedComponentManager java.lang.IllegalStateException: Given component holder class androidx.activity.ComponentActivity 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 androidx.hilt.navigation.HiltViewModelFactory.create(HiltNavBackStackEntry.kt:75) at androidx.hilt.navigation.compose.HiltViewModelKt.createHiltViewModelFactory(HiltViewModel.kt:95) at com.riyadhair.digital.mobile.ui.screens.dashboard.login.signup.LoginScreenKt.LoginScreen(LoginScreen.kt:686)

This is my code

@HiltAndroidTest
@Config(application = HiltTestApplication::class)
@RunWith(RobolectricTestRunner::class)
class LoginScreenTest {

    @get:Rule
    var hiltRule = HiltAndroidRule(this)

    @get:Rule
    val composeTestRule = createComposeRule()

    val navHostController = mock<NavHostController>()

    val baseActivityViewModel = mock<BaseActivityViewModel>()

    @Before
    fun setup() {
        hiltRule.inject() // Ensure this is called before accessing any Hilt components
    }

    @Test
    fun loginScreenTest() {
        composeTestRule.setContent {
          LoginScreen(navHostController = navHostController, baseActivityViewModel = baseActivityViewModel)
        }
    }
}



@Composable
fun LoginScreen(
    navHostController: NavHostController,
    baseActivityViewModel: BaseActivityViewModel?
) {
    val context = LocalContext.current
    val viewmodel = hiltViewModel<LoginViewModel>() // In this line throwing error

Upvotes: 0

Views: 53

Answers (0)

Related Questions