Estoy escribiendo algunas pruebas unitarias para mi aplicación de Android escritas en Kotlin, y recibo errores de las funciones de recopilación en línea incluidas, en este caso específicamente ordenadas por
override fun onDaysSelected(dayOfWeekList: ArrayList<DayOfWeek>) { view.userRoutingRule.days = dayOfWeekList.sortedBy { it.dayOfWeek } renderRule() }Este es el error que recibo cuando ejecuto mis pruebas unitarias con cobertura
---- Corredor de cobertura de IntelliJ IDEA ---- muestreo... incluir patrones: com.mypackage..* excluir patrones:[2019.02.02 14:49:40] (Cobertura): No se extrajeron datos de clase: com. mipaquete\miarchivo$onDaysSelected$$inline$sortedBy$1: java.lang.Throwable
Proceso finalizado con código de salida 0
Todas las pruebas de mi unidad pasan en consecuencia, pero cuando voy a mirar el informe de cobertura, está casi completamente vacío ya que este error impidió que se completara.
¿Hay alguna solución a esto en este momento? Es difícil saber si me perdí alguna condición si no puedo mirar el informe.
Es un problema conocido con el cálculo de la cobertura de los métodos imline que usan lambdas. (consulte el informe Sin cobertura para los métodos de Kotlin en línea y https://discuss.kotlinlang.org/t/inline-functions-coverage/5366 )
Si desea ejecutar la cobertura en el estado actual, deberá usar otros enfoques, por ejemplo, implementar la interfaz Comparable en su DayOfWeek y usar el método .sorted() .