У меня есть следующий класс, написанный на Kotlin + Guice, который вызывается с помощью лямбды
class LambdaProcessor @Inject constructor(private val s3Util: S3Util) {
fun lambdaInvokesThisMethod() {
s3Util.DoSomething()
}
}
Это прекрасно работает для модульного тестирования, но для лямбды требуется, чтобы в классе был пустой конструктор.
Я могу преобразовать этот же класс в пустой конструктор, выполнив следующее:
class LambdaProcessor {
@Inject lateinit var s3Util: S3Util
init {
Guice.createInjector(GuiceDependencyInjector()).injectMembers(this)
}
fun lambdaInvokesThisMethod() {
s3Util.DoSomething()
}
}
Этот код теперь отлично работает на лямбде, но я больше не могу смоделировать s3Util в своих модульных тестах, потому что метод init получаетзвонил.
Как я могу заставить оба сценария работать вместе?