Pruebas unitarias y joda-time-android

Utilicé las clases de la biblioteca de joda-time-android en mi clase Presenter y no debe tener ninguna dependencia de Android. Así que no puedo probarlo correctamente. Sé que puedo usar Robolectric para esto, pero quiero mantenerme fuera de esta herramienta y mi Presenter limpio. ¿Debo abandonar JodaTime? ¿Alguna otra solución?

Para Unit-tests podemos usar la implementación java por defecto de la biblioteca JodaTime porque tiene el mismo paquete y clases como joda-time-android .

 // for android compile 'net.danlew:android.joda:2.9.3' // joda-time for tests testCompile 'joda-time:joda-time:2.9.3' 

Funciona de maravilla.

Para otros casos con otras bibliotecas, vea la respuesta de @npace .

Bueno, joda-time-android depende del tiempo de ejecución de Android para poder trabajar. Usar Robolectric para esto parece un buen caso de uso, ya que no estarás interactuando con Fragment , Activity y otras clases de interfaz de usuario del SDK de Android.

Dado que la configuración de Robolectric es una especie de dolor, hay otra opción: puede utilizar el patrón de adaptador para crear una interfaz común para la biblioteca de tiempo Java Joda regular y la versión de Android.

Si eso es posible y práctico (dependiendo de cuánto de la API de tiempo Joda que desee utilizar), puede volver su Adapter con joda-time-android cuando se ejecuta la aplicación, y volver con joda-time cuando se ejecutan las pruebas de unidad. Me imagino que puedes hacer que use la implementación concreta de Android desde el método onCreate() de tu Application y la implementación concreta de Java desde la prueba de tu unidad, @Before , por ejemplo.

  • En Java, cómo obtener cadenas de días de la semana (Sun, Mon, ..., Sat) con el sistema de configuración por defecto (idioma)
  • Encuentre el día y la hora restante usando jodatime
  • Sólo algunos usuarios informan del error "Recurso no encontrado". ¿Esto tiene sentido?
  • JodaTime no reconoce algunas zonas horarias de Android
  • Convertir milisegundo a Joda Fecha Hora o para zona 0000
  • Serializar objeto personalizado que contiene objetos JodaTime en JSON
  • Anular el primer día de la semana en joda?
  • Adición de Joda Time a Android Studio
  • joda tiempo consumir demasiada memoria
  • Gradle duplicar archivos durante el embalaje - messages.properties de JodaTime
  • Añadiendo el tiempo de Joda
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.