Note: To use this api in non-instrumented tests, run with robolectric. This is because android's Bundle is necessarily integrated into the parsing of route arguments.
A mapping of KType to custom NavType<*> in the route. May be empty if route does not use custom NavTypes.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-05-15 UTC.
[null,null,["Last updated 2025-05-15 UTC."],[],[],null,["# androidx.navigation.testing\n===========================\n\n*** ** * ** ***\n\nKotlin \\|[Java](/reference/androidx/navigation/testing/package-summary \"View this page in Java\")\nCommon/AllAndroid/JVM\n\nClasses\n-------\n\n|----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|\n| [TestNavHostController](/reference/kotlin/androidx/navigation/testing/TestNavHostController) | Subclass of [NavHostController](/reference/kotlin/androidx/navigation/NavHostController) that offers additional APIs for testing Navigation. | android |\n| [TestNavigatorState](/reference/kotlin/androidx/navigation/testing/TestNavigatorState) | An implementation of [NavigatorState](/reference/kotlin/androidx/navigation/NavigatorState) that allows testing a [androidx.navigation.Navigator](/reference/kotlin/androidx/navigation/Navigator) in isolation (i.e., without requiring a [androidx.navigation.NavController](/reference/kotlin/androidx/navigation/NavController)). | android |\n\nExtension functions summary\n---------------------------\n\n|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----|\n| `operator `[SavedStateHandle](/reference/kotlin/androidx/lifecycle/SavedStateHandle) | [SavedStateHandle.Companion](/reference/kotlin/androidx/lifecycle/SavedStateHandle.Companion)`.`[invoke](/reference/kotlin/androidx/navigation/testing/package-summary#(androidx.lifecycle.SavedStateHandle.Companion).invoke(kotlin.Any,kotlin.collections.Map))`(` ` route: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`,` ` typeMap: `[Map](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html)`\u003c`[KType](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html)`, `[NavType](/reference/kotlin/androidx/navigation/NavType)`\u003c*\u003e\u003e` `)` SavedStateHandle constructor to create a SavedStateHandle with a serializable object. | Cmn |\n\nExtension functions\n-------------------\n\n### invoke\n\nCmn \nArtifact: [androidx.navigation:navigation-testing](/jetpack/androidx/releases/navigation) \n[View Source](https://cs.android.com/search?q=file:androidx/navigation/testing/SavedStateHandleFactory.kt+function:invoke) \nAdded in [2.8.0](/jetpack/androidx/releases/navigation#2.8.0) \n\n```\noperator fun SavedStateHandle.Companion.invoke(\n route: Any,\n typeMap: Map\u003cKType, NavType\u003c*\u003e\u003e = emptyMap()\n): SavedStateHandle\n```\n\nSavedStateHandle constructor to create a SavedStateHandle with a serializable object.\n\nReturns a [SavedStateHandle](/reference/kotlin/androidx/lifecycle/SavedStateHandle) populated with arguments from [route](/reference/kotlin/androidx/navigation/testing/package-summary#(androidx.lifecycle.SavedStateHandle.Companion).invoke(kotlin.Any,kotlin.collections.Map)).\n\nNote: To use this api in non-instrumented tests, run with robolectric. This is because android's Bundle is necessarily integrated into the parsing of route arguments. \n\n| Parameters |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `route: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) | The route to extract argument values from |\n| `typeMap: `[Map](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html)`\u003c`[KType](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html)`, `[NavType](/reference/kotlin/androidx/navigation/NavType)`\u003c*\u003e\u003e = emptyMap()` | A mapping of KType to custom NavType\\\u003c\\*\\\u003e in the [route](/reference/kotlin/androidx/navigation/testing/package-summary#(androidx.lifecycle.SavedStateHandle.Companion).invoke(kotlin.Any,kotlin.collections.Map)). May be empty if [route](/reference/kotlin/androidx/navigation/testing/package-summary#(androidx.lifecycle.SavedStateHandle.Companion).invoke(kotlin.Any,kotlin.collections.Map)) does not use custom NavTypes. |"]]