Протестируйте звонок в объекте Kotlin - PullRequest
1 голос
/ 11 апреля 2019

У меня есть такой класс 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, но если я объявлю его явно, он конфликтует с сгенерированным. Есть ли лучшие варианты, чтобы проверить это?

Второй вопрос - как смоделировать экземпляр объекта, поскольку он инициализируется языком, который находится вне моего контроля?

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