I would like to test my mapper class at 100%.
For that, I wrote a test that takes all possible values.
With the reports made by Kover, we can see that everything is green (except the first line).
I'm use kover_version = '0.6.1' with minimal settings
Here is the class to test :
object WeatherIconMapper {
fun mapCodeToWeatherIcon(code: String?): Int = when (code) {
"p1j", "p1bisj" -> R.drawable.ic_wicon_p1j_p1bisj
"p1n", "p1bisn" -> R.drawable.ic_wicon_p1n_p1bisn
"p2j", "p2bisj" -> R.drawable.ic_wicon_p2j_p2bisj
"p2n", "p2bisn" -> R.drawable.ic_wicon_p2n_p2bisn
"p3", "p3j", "p3n", "p3bis", "p3bisj", "p3bisn" -> R.drawable.ic_wicon_p3_p3bis
"p4j", "p4bisj" -> R.drawable.ic_wicon_p4j
"p4n", "p4bisn" -> R.drawable.ic_wicon_p4n
"p5j", "p5bisj" -> R.drawable.ic_wicon_p5j_p5bisj
"p5n", "p5bisn" -> R.drawable.ic_wicon_p5n_p5bisn
"p6", "p6j", "p6n", "p6bis", "p6bisj", "p6bisn", "p6ter" -> R.drawable.ic_wicon_p6_p6bis
"p7", "p7j", "p7n", "p7bis", "p7bisj", "p7bisn" -> R.drawable.ic_wicon_p7_p7bis
"p8", "p8j", "p8n", "p8bis", "p8bisj", "p8bisn" -> R.drawable.ic_wicon_p8_p8bis
"p9", "p9j", "p9n", "p9bis", "p9bisj", "p9bisn" -> R.drawable.ic_wicon_p9
"p10j", "p10bisj" -> R.drawable.ic_wicon_p10j
"p10n", "p10bisn" -> R.drawable.ic_wicon_p10n
"p11", "p11j", "p11n", "p11bis", "p11bisj", "p11bisn" -> R.drawable.ic_wicon_p11
"p12j", "p12bisj" -> R.drawable.ic_wicon_p12j
"p12n", "p12bisn" -> R.drawable.ic_wicon_p12n
"p13", "p13j", "p13n", "p13bis", "p13bisj", "p13bisn", "p13ter", "p13quater" -> R.drawable.ic_wicon_p13
"p14", "p14j", "p14n", "p14bis", "p14bisj", "p14bisn", "p14ter", "p14quater" -> R.drawable.ic_wicon_p14
"p15", "p15j", "p15n", "p15bis" -> R.drawable.ic_wicon_p15
"p16", "p16j", "p16n", "p16bis", "p16bisj", "p16bisn" -> R.drawable.ic_wicon_p16
"p17j", "p17bisj" -> R.drawable.ic_wicon_p17j
"p17n", "p17bisn" -> R.drawable.ic_wicon_p17n
"p18", "p18j", "p18n", "p18bis", "p18bisj", "p18bisn", "p18ter" -> R.drawable.ic_wicon_p18
"p19j", "p19bisj" -> R.drawable.ic_wicon_p19j
"p19n", "p19bisn" -> R.drawable.ic_wicon_p19n
"p20", "p20j", "p20n", "p20bis", "p20bisj", "p20bisn", "p20ter" -> R.drawable.ic_wicon_p20
"p21j", "p21bisj" -> R.drawable.ic_wicon_p21j
"p21n", "p21bisn" -> R.drawable.ic_wicon_p21n
"p22", "p22j", "p22n", "p22bis", "p22bisj", "p22bisn", "p22ter", "p22quater" -> R.drawable.ic_wicon_p22
"p23", "p23j", "p23n", "p23bis", "p23bisj", "p23bisn" -> R.drawable.ic_wicon_p23
"p24j", "p24bisj", "p24terj" -> R.drawable.ic_wicon_p24j
"p24n", "p24bisn", "p24tern" -> R.drawable.ic_wicon_p24n
"p25", "p25j", "p25n", "p25bis", "p25bisj", "p25bisn" -> R.drawable.ic_wicon_p25
"p26j", "p26bisj" -> R.drawable.ic_wicon_p26j
"p26n", "p26bisn" -> R.drawable.ic_wicon_p26n
"p27", "p27j", "p27n", "p27bis", "p27bisj", "p27bisn" -> R.drawable.ic_wicon_p27
"p28j", "p28bisj" -> R.drawable.ic_wicon_p28j
"p28n", "p28bisn" -> R.drawable.ic_wicon_p28n
"p29", "p29j", "p29n", "p29bis", "p29bisj", "p29bisn" -> R.drawable.ic_wicon_p29
"p30j", "p30bisj" -> R.drawable.ic_wicon_p30j
"p30n", "p30bisn" -> R.drawable.ic_wicon_p30n
else -> R.drawable.ic_icone_weather_default
}
}
And the associate test :
class WeatherIconMapperTest {
@Test
fun `test getWeatherIcon mapper`() {
// Given
listOf(
"p1j" to R.drawable.ic_wicon_p1j_p1bisj,
"p1bisj" to R.drawable.ic_wicon_p1j_p1bisj,
"p1n" to R.drawable.ic_wicon_p1n_p1bisn,
"p1bisn" to R.drawable.ic_wicon_p1n_p1bisn,
"p2j" to R.drawable.ic_wicon_p2j_p2bisj,
"p2bisj" to R.drawable.ic_wicon_p2j_p2bisj,
"p2n" to R.drawable.ic_wicon_p2n_p2bisn,
"p2bisn" to R.drawable.ic_wicon_p2n_p2bisn,
"p3" to R.drawable.ic_wicon_p3_p3bis,
"p3j" to R.drawable.ic_wicon_p3_p3bis,
"p3n" to R.drawable.ic_wicon_p3_p3bis,
"p3bis" to R.drawable.ic_wicon_p3_p3bis,
"p3bisj" to R.drawable.ic_wicon_p3_p3bis,
"p3bisn" to R.drawable.ic_wicon_p3_p3bis,
"p4j" to R.drawable.ic_wicon_p4j,
"p4bisj" to R.drawable.ic_wicon_p4j,
"p4n" to R.drawable.ic_wicon_p4n,
"p4bisn" to R.drawable.ic_wicon_p4n,
"p5j" to R.drawable.ic_wicon_p5j_p5bisj,
"p5bisj" to R.drawable.ic_wicon_p5j_p5bisj,
"p5n" to R.drawable.ic_wicon_p5n_p5bisn,
"p5bisn" to R.drawable.ic_wicon_p5n_p5bisn,
"p6" to R.drawable.ic_wicon_p6_p6bis,
"p6j" to R.drawable.ic_wicon_p6_p6bis,
"p6n" to R.drawable.ic_wicon_p6_p6bis,
"p6bis" to R.drawable.ic_wicon_p6_p6bis,
"p6bisj" to R.drawable.ic_wicon_p6_p6bis,
"p6bisn" to R.drawable.ic_wicon_p6_p6bis,
"p6ter" to R.drawable.ic_wicon_p6_p6bis,
"p7" to R.drawable.ic_wicon_p7_p7bis,
"p7j" to R.drawable.ic_wicon_p7_p7bis,
"p7n" to R.drawable.ic_wicon_p7_p7bis,
"p7bis" to R.drawable.ic_wicon_p7_p7bis,
"p7bisj" to R.drawable.ic_wicon_p7_p7bis,
"p7bisn" to R.drawable.ic_wicon_p7_p7bis,
"p8" to R.drawable.ic_wicon_p8_p8bis,
"p8j" to R.drawable.ic_wicon_p8_p8bis,
"p8n" to R.drawable.ic_wicon_p8_p8bis,
"p8bis" to R.drawable.ic_wicon_p8_p8bis,
"p8bisj" to R.drawable.ic_wicon_p8_p8bis,
"p8bisn" to R.drawable.ic_wicon_p8_p8bis,
"p9" to R.drawable.ic_wicon_p9,
"p9j" to R.drawable.ic_wicon_p9,
"p9n" to R.drawable.ic_wicon_p9,
"p9bis" to R.drawable.ic_wicon_p9,
"p9bisj" to R.drawable.ic_wicon_p9,
"p9bisn" to R.drawable.ic_wicon_p9,
"p10j" to R.drawable.ic_wicon_p10j,
"p10bisj" to R.drawable.ic_wicon_p10j,
"p10n" to R.drawable.ic_wicon_p10n,
"p10bisn" to R.drawable.ic_wicon_p10n,
"p11" to R.drawable.ic_wicon_p11,
"p11j" to R.drawable.ic_wicon_p11,
"p11n" to R.drawable.ic_wicon_p11,
"p11bis" to R.drawable.ic_wicon_p11,
"p11bisj" to R.drawable.ic_wicon_p11,
"p11bisn" to R.drawable.ic_wicon_p11,
"p12j" to R.drawable.ic_wicon_p12j,
"p12bisj" to R.drawable.ic_wicon_p12j,
"p12n" to R.drawable.ic_wicon_p12n,
"p12bisn" to R.drawable.ic_wicon_p12n,
"p13" to R.drawable.ic_wicon_p13,
"p13j" to R.drawable.ic_wicon_p13,
"p13n" to R.drawable.ic_wicon_p13,
"p13bis" to R.drawable.ic_wicon_p13,
"p13bisj" to R.drawable.ic_wicon_p13,
"p13bisn" to R.drawable.ic_wicon_p13,
"p13ter" to R.drawable.ic_wicon_p13,
"p13quater" to R.drawable.ic_wicon_p13,
"p14" to R.drawable.ic_wicon_p14,
"p14j" to R.drawable.ic_wicon_p14,
"p14n" to R.drawable.ic_wicon_p14,
"p14bis" to R.drawable.ic_wicon_p14,
"p14bisj" to R.drawable.ic_wicon_p14,
"p14bisn" to R.drawable.ic_wicon_p14,
"p14ter" to R.drawable.ic_wicon_p14,
"p14quater" to R.drawable.ic_wicon_p14,
"p15" to R.drawable.ic_wicon_p15,
"p15j" to R.drawable.ic_wicon_p15,
"p15n" to R.drawable.ic_wicon_p15,
"p15bis" to R.drawable.ic_wicon_p15,
"p16" to R.drawable.ic_wicon_p16,
"p16j" to R.drawable.ic_wicon_p16,
"p16n" to R.drawable.ic_wicon_p16,
"p16bis" to R.drawable.ic_wicon_p16,
"p16bisj" to R.drawable.ic_wicon_p16,
"p16bisn" to R.drawable.ic_wicon_p16,
"p17j" to R.drawable.ic_wicon_p17j,
"p17bisj" to R.drawable.ic_wicon_p17j,
"p17n" to R.drawable.ic_wicon_p17n,
"p17bisn" to R.drawable.ic_wicon_p17n,
"p18" to R.drawable.ic_wicon_p18,
"p18j" to R.drawable.ic_wicon_p18,
"p18n" to R.drawable.ic_wicon_p18,
"p18bis" to R.drawable.ic_wicon_p18,
"p18bisj" to R.drawable.ic_wicon_p18,
"p18bisn" to R.drawable.ic_wicon_p18,
"p18ter" to R.drawable.ic_wicon_p18,
"p19j" to R.drawable.ic_wicon_p19j,
"p19bisj" to R.drawable.ic_wicon_p19j,
"p19n" to R.drawable.ic_wicon_p19n,
"p19bisn" to R.drawable.ic_wicon_p19n,
"p20" to R.drawable.ic_wicon_p20,
"p20j" to R.drawable.ic_wicon_p20,
"p20n" to R.drawable.ic_wicon_p20,
"p20bis" to R.drawable.ic_wicon_p20,
"p20bisj" to R.drawable.ic_wicon_p20,
"p20bisn" to R.drawable.ic_wicon_p20,
"p20ter" to R.drawable.ic_wicon_p20,
"p21j" to R.drawable.ic_wicon_p21j,
"p21bisj" to R.drawable.ic_wicon_p21j,
"p21n" to R.drawable.ic_wicon_p21n,
"p21bisn" to R.drawable.ic_wicon_p21n,
"p22" to R.drawable.ic_wicon_p22,
"p22j" to R.drawable.ic_wicon_p22,
"p22n" to R.drawable.ic_wicon_p22,
"p22bis" to R.drawable.ic_wicon_p22,
"p22bisj" to R.drawable.ic_wicon_p22,
"p22bisn" to R.drawable.ic_wicon_p22,
"p22ter" to R.drawable.ic_wicon_p22,
"p22quater" to R.drawable.ic_wicon_p22,
"p23" to R.drawable.ic_wicon_p23,
"p23j" to R.drawable.ic_wicon_p23,
"p23n" to R.drawable.ic_wicon_p23,
"p23bis" to R.drawable.ic_wicon_p23,
"p23bisj" to R.drawable.ic_wicon_p23,
"p23bisn" to R.drawable.ic_wicon_p23,
"p24j" to R.drawable.ic_wicon_p24j,
"p24bisj" to R.drawable.ic_wicon_p24j,
"p24terj" to R.drawable.ic_wicon_p24j,
"p24n" to R.drawable.ic_wicon_p24n,
"p24bisn" to R.drawable.ic_wicon_p24n,
"p24tern" to R.drawable.ic_wicon_p24n,
"p25" to R.drawable.ic_wicon_p25,
"p25j" to R.drawable.ic_wicon_p25,
"p25n" to R.drawable.ic_wicon_p25,
"p25bis" to R.drawable.ic_wicon_p25,
"p25bisj" to R.drawable.ic_wicon_p25,
"p25bisn" to R.drawable.ic_wicon_p25,
"p26j" to R.drawable.ic_wicon_p26j,
"p26bisj" to R.drawable.ic_wicon_p26j,
"p26n" to R.drawable.ic_wicon_p26n,
"p26bisn" to R.drawable.ic_wicon_p26n,
"p27" to R.drawable.ic_wicon_p27,
"p27j" to R.drawable.ic_wicon_p27,
"p27n" to R.drawable.ic_wicon_p27,
"p27bis" to R.drawable.ic_wicon_p27,
"p27bisj" to R.drawable.ic_wicon_p27,
"p27bisn" to R.drawable.ic_wicon_p27,
"p28j" to R.drawable.ic_wicon_p28j,
"p28bisj" to R.drawable.ic_wicon_p28j,
"p28n" to R.drawable.ic_wicon_p28n,
"p28bisn" to R.drawable.ic_wicon_p28n,
"p29" to R.drawable.ic_wicon_p29,
"p29j" to R.drawable.ic_wicon_p29,
"p29n" to R.drawable.ic_wicon_p29,
"p29bis" to R.drawable.ic_wicon_p29,
"p29bisj" to R.drawable.ic_wicon_p29,
"p29bisn" to R.drawable.ic_wicon_p29,
"p30j" to R.drawable.ic_wicon_p30j,
"p30bisj" to R.drawable.ic_wicon_p30j,
"p30n" to R.drawable.ic_wicon_p30n,
"p30bisn" to R.drawable.ic_wicon_p30n,
"fjdfsf" to R.drawable.ic_icone_weather_default,
null to R.drawable.ic_icone_weather_default
).forEach { (icon, expected) ->
// When
val result = WeatherIconMapper.mapCodeToWeatherIcon(icon)
// Then
assertEquals("Testing icon=$icon", expected, result)
}
}
}
Kover coverage report :
...
Why the conditions coverage is not 100 % ?
Edit:
I just noticed that before switching to Kover, the code was 100% tested with Jacoco :




