фиктивные финальные классы для юнит-тестов и UI - PullRequest
1 голос
/ 07 июня 2019

Я пытаюсь написать тестовый пользовательский интерфейс для моего приложения для Android, собранный с помощью kotlin.Поскольку в kotlin каждый класс по умолчанию является финальным, поэтому для макетирования финального класса я использовал библиотеку mockInline, которая поддерживает макетирование финальных классов.Так как я должен написать и юнит-тесты и тесты пользовательского интерфейса.Я добавил библиотеку следующим образом:

testImplementation 'org.mockito:mockito-inline:2.13.0'
androidTestImplementation 'org.mockito:mockito-inline:2.13.0'

Но при выполнении тестов пользовательского интерфейса выдает

More than one file was found with OS independent path 'mockito-extensions/org.mockito.plugins.MockMaker'

Есть ли способ использовать библиотеку mockInline для макетирования окончательных классов для обоихюнит и UI тесты

1 Ответ

0 голосов
/ 12 июня 2019

Мы не можем издеваться над финальными классами для тестов пользовательского интерфейса (Android Test), используя встроенный плагин mockito, как упомянуто на официальном трекере ошибок здесь

Причина этого

"Реальной возможности заставить это работать в Android нет на момент, когда ему не хватает инструментального API, поверх которого мы эксплуатации. Виртуальная машина Android не является стандартной виртуальной машиной и реализует только подмножество спецификации Java. Пока Google не выбирает расширять свою JVM, я боюсь, что эта функция не будет работать. "

как уже упоминалось здесь

Чтобы издеваться над финальными классами для Android Тесты

  • Мы можем использовать библиотеку DexOpener с возможностью имитации финальных классов в Android.

  • Мы также можем использовать Открытый плагин Kotlin , который открывает все конечные классы без явного ключевого слова open.

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