Kotlin REPL с Android-классами unStub! Ed

Мне нравится Kotlin REPL в Idea / Android-Studio, но, как разработчик Android, я часто сталкиваюсь с Stub! проблемы здесь. При написании модульных тестов я использую unmock для решения этой проблемы. Есть ли способ использовать тот же метод, который используется там для плагина Kotlin REPL?

[ изображение, показывающее проблему [2]

    Проблема в том, что Kotlin REPL в IDEA предоставляется плагином Kotlin IDEA, который не имеет понятия Android как таковой, но только смотрит на то, что находится в пути к классам, который в этом случае является android.jar содержащий заглушки, которые бросают исключение, которое вы упомянули.

    Использование unmock или даже встроенной поддержки Android для удаления исключений из заглушек в тестах (см. Здесь в конце «Зависимости Mock Android») не будет работать, так как это влияет только на вашу Gradle build.

    Единственное решение, которое я могу придумать, – либо открыть проблему на трекере Kotlin, либо пропустить исходный код функции REPL в плагине Kotlin и отправить запрос Pull.

    Все классы android (и java.lang. *) Являются заполнителями в проекте Android. Это связано с тем, что андроид не использует стандартные файлы классов java для хранения скомпилированного кода, и нет возможности напрямую запускать этот код на компьютере.

    Вы просто не можете использовать REPL с классами android, они будут существовать только на реальном устройстве или эмуляторе.

    Если вас не волнует правильность, то вы можете использовать реализацию Robolectric для Android, добавив ее в качестве зависимости от проекта. Чтобы убедиться, что он не сталкивается с реальной реализацией, вы должны, вероятно, сделать это с помощью отдельного модуля, посвященного REPL.

    Зависимость Robolectic от unmock: org.robolectric:android-all:7.1.0_r7-robolectric-0