Как получить различную реализацию функции верхнего уровня в Unit и InstrumentTests для Android

У меня есть файл kotlin с функцией верхнего уровня (не являющийся членом какого-либо класса). Он компилируется в класс со статической функцией в Java. Я хочу иметь различную реализацию этой функции для модульных тестов (независимой от платформы) и контрольно-измерительных тестов (производственное поведение + Espresso Idling Resource). Я могу поместить тот же файл в тот же путь для prod и тестов, но когда я положил его на тест, а androidTest – IDE увидит его как в одном исходном наборе и не может решить, какую функцию я хотел бы использовать. Поскольку я использую функции верхнего уровня, я не могу использовать DI для передачи различной реализации в тестируемый класс.

Существует ли какая-либо другая реализация класса для теста и androidTest для функций верхнего уровня?

Я пытался

sourceSets { androidTest { java.srcDirs = ['src/androidTest/java'] java.exclude('src/test/java/util/CoroutinesUi.kt') } test { java.srcDirs = ['src/test/java'] } } 

Без везения.

    Я решаю эту проблему на данный момент, создав делегат объекта, который получает реализацию, а моя функция верхнего уровня просто вызывает текущую доступную реализацию от этого делегата. В этом случае мне нужно просто сбросить реализации в @Before в базовом тесте, но получить несколько виртуальных вызовов, что в порядке.

    Intereting Posts
    Преобразованный файл класса java в kotlin делает ошибку компиляции Как использовать MapBuilder в kotlin и добавить все значения? HttpLoggingInterceptor не регистрируется с модификацией 2 Заводские привязки Kodein бросают NotFoundException Kotlin: Видимость статического вложенного класса Java, объявленного внутри невидимого класса Дифференцировать неоднозначные расширения в Котлине Использование класса Kotlin в Java: не удается найти символ Кнопки доступа из макета, программно раздутые в другом макете Как сохранить ссылку объекта объекта singleton в сопутствующем объекте, Котлин Преобразование моего существующего проекта студии andorid в kotlin? Android N Java 8 (компилятор Jack) и Kotlin interop Почему я не могу использовать @PublishedApi для typealias? Kotlin переопределяет набор элементов и получает Как создать таблицу SQLite с помощью Anko в Котине? Плагин не нашел ошибок градиента в автоматизированной сборке Android