Reputation: 11
I am trying to launch a fragment with object as a parameter in my Espresso test case and I am unable to do so.
val homeFragment= launchFragmentInContainer(themeResId = R.style.AppTheme_NoActionBar)
But I want to send an object to the HomeFragment class.
For eg: val homeType:HomeType
I want to pass the homeType object to the below line of code, need help with how to do it. val homeFragment= launchFragmentInContainer(themeResId = R.style.AppTheme_NoActionBar)
I have looked into documentation and stackoverflow link(added below) and I am not able to get the desired solution.
https://developer.android.com/guide/fragments/test
Best practice for instantiating a new Android Fragment
Please help me with this issue.
Upvotes: 1
Views: 321
Reputation: 111
if you look at the launchFragmentInContainer function documentation, you can see that have parameter fragmentArgs of type Bundle. You can use it to pass arguments to fragment. I don't know how exactly your class HomeType looks like but remember that within Bundle you can pass only custom classes that implements java.io.Serializable or Parcelable. https://developer.android.com/reference/kotlin/androidx/fragment/app/testing/package-summary#launchFragmentInContainer(android.os.Bundle,kotlin.Int,androidx.lifecycle.Lifecycle.State,androidx.fragment.app.FragmentFactory)
Upvotes: 1