У меня есть такой класс Kotlin
import org.slf4j.LoggerFactory.getLogger
object Doer {
val logger = LoggerFactory.getLogger(Doer::class.java)
fun doSomething() : Int {
logger.warn("Doing.")
return 123
}
}
Я хотел бы провести модульный тест, который подтвердит, что logger.warn
был сделан вызов с соответствующим сообщением. Как мне это сделать в Котлине?
Одна из моих идей состояла в том, чтобы использовать геттер для логгера и заглушки с Mockito, но нужно ли мне явно объявлять такой метод, учитывая, что Kotlin генерирует геттеры автоматически? Метод getLogger()
не виден в классе Doer
, но если я объявлю его явно, он конфликтует с сгенерированным.
Есть ли лучшие варианты, чтобы проверить это?
Второй вопрос - как смоделировать экземпляр объекта, поскольку он инициализируется языком, который находится вне моего контроля?