Abhishek Bansal
07/16/2020, 12:57 PMfun groupByWeek(listItems: List<Item>, dateUtils: DateUtils): Map<Int, MutableList<Item>> {
val dateResponseMap = mutableMapOf<Int, MutableList<Item>>()
listItems.forEach { response ->
val date = dateUtils.getWeekOfCurrentYear(response.time)
date?.let {
if (!dateResponseMap.containsKey(date)) {
dateResponseMap[date] = mutableListOf()
}
dateResponseMap[date]?.add(response)
}
}
return dateResponseMap
}
Question here is to mock or not to mock DateUtils
class. DateUtils
is our custom class which is already Unit Tested. Not mocking it is not ideal but it saves a lot of trouble (note the usage of dateUtils.getWeekOfCurrentYear()
inside loop). listItems
here are coming from a fake repository. response.time
is long
timestamp.
Is there a better(more testable) way of writing this method?natpryce
07/16/2020, 2:20 PMAbhishek Bansal
07/16/2020, 2:47 PM