Tengo una configuración de aplicación de Android para la inyección de dependencia usando Hilt, y me gustaría probar mis fragmentos por unidad.
Actualmente estoy creando mi modelo de vista usando:
private val viewModel: ExampleViewModel by viewModels()Y estoy creando el fragmento para probar usando el código de aquí
Necesito reemplazar este ExampleViewModel con un simulacro, ¿cómo haría para hacer esto?
Pegaré aquí la respuesta de "danysantiago" en un problema ( https://github.com/google/dagger/issues/1972 ) relacionado con su pregunta:
La extensión Hilt ViewModel funciona declarando módulos que vinculan fábricas asistidas a un mapa y no vinculando ViewModels concretos. Por lo tanto, lo que desea hacer es vincular la fábrica asistida del modelo de vista concreto usando la clave del modelo de vista abstracto para que cuando HiltViewModelFactory busque la fábrica en función de la clave de clase, use la fábrica asistida para el modelo de vista concreto. Esto es suuuper oscuro y, por lo tanto, me refiero a que no está 'fácilmente' disponible.
Sin embargo, si puede ampliar el caso de prueba que está tratando de escribir que podría ayudarnos a proporcionar alguna orientación, no estoy seguro de si está tratando de simular/falsificar el ViewModel en sí mismo para las pruebas, pero las API de prueba de Hilt deberían permitirle reemplace las dependencias en ViewModel para que pueda escribir una prueba con Fragment y ViewModel.