Встроенные функции вызывают ошибки в отчете о покрытии кода модульного теста - PullRequest
0 голосов
/ 03 февраля 2019

Я пишу некоторые модульные тесты для моего приложения для Android, написанные на Kotlin, и получаю ошибки от включенных встроенных функций сбора, в данном случае специально sortedBy

 override fun onDaysSelected(dayOfWeekList: ArrayList<DayOfWeek>) {
        view.userRoutingRule.days = dayOfWeekList.sortedBy { it.dayOfWeek }
        renderRule()
 }

Это ошибка, которую яя получаю, когда я запускаю свои модульные тесты с покрытием

---- Бег покрытия IntelliJ IDEA ---- выборка ... включает шаблоны: com.mypackage .. * исключает шаблоны: [2019.02.02 14:49:40] (покрытие): данные класса не были извлечены: com.mypackage \ myfile $ onDaysSelected $$ inlined $ sortedBy $ 1: java.lang.Throwable

Процесс завершен с кодом выхода 0

Все мои модульные тесты проходят соответственно, но когда я смотрю отчет о покрытии, он почти полностью обнажается, поскольку эта ошибка не позволяет ему завершиться.

Есть ли какое-либо решение для этогос этой точки зрения?Трудно понять, пропустил ли я какое-либо условие, если я не могу просто посмотреть отчет.

1 Ответ

0 голосов
/ 26 мая 2019

Это известная проблема с вычислением охвата имлинных методов, которые используют лямбда-выражения.(см. Нет отчета о покрытии для встроенных методов Котлина и https://discuss.kotlinlang.org/t/inline-functions-coverage/5366)

Если вы хотите запустить покрытие в текущем состоянии, вам нужно будет использовать другие подходы, например, реализацию Comparable интерфейс в вашем DayOfWeek и используя .sorted() метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...