architecture-samples
architecture-samples copied to clipboard
DataBindingIdlingResource and Hilt
How can we use DataBindingIdlingResource
and also use launchFragmentInHiltContainer
?
launchFragmentInHiltContainer
is not returning anything. However, I've modified it like this:
inline fun <reified T : Fragment> launchFragmentInHiltContainer(
fragmentArgs: Bundle? = null,
@StyleRes themeResId: Int = R.style.FragmentScenarioEmptyFragmentActivityTheme,
crossinline action: Fragment.() -> Unit = {}
): ActivityScenario<HiltTestActivity> {
val startActivityIntent = Intent.makeMainActivity(
ComponentName(
ApplicationProvider.getApplicationContext(),
HiltTestActivity::class.java
)
).putExtra(
"androidx.fragment.app.testing.FragmentScenario.EmptyFragmentActivity.THEME_EXTRAS_BUNDLE_KEY",
themeResId
)
ActivityScenario.launch<HiltTestActivity>(startActivityIntent).onActivity { activity ->
val fragment: Fragment = activity.supportFragmentManager.fragmentFactory.instantiate(
Preconditions.checkNotNull(T::class.java.classLoader),
T::class.java.name
)
fragment.arguments = fragmentArgs
activity.supportFragmentManager
.beginTransaction()
.add(android.R.id.content, fragment, "")
.commitNow()
fragment.action()
}.also {
return it
}
}
Is this a good approach?
This only returns an ActivityScenario. How would you get it to return a FragmentScenario?
I'm sorry but it's been a long time. I might have used different versions than you do.