0

I have a Kotlin class like this one

import org.slf4j.LoggerFactory.getLogger
object Doer {
    val logger = LoggerFactory.getLogger(Doer::class.java)

    fun doSomething() : Int {
        logger.warn("Doing.")
        return 123
    }
}

I would like to have a unit test that verifies logger.warn call was made with relevant message. How do I do this in Kotlin? One of my ideas was to use a getter for logger and stub that with Mockito, but do I need to declare such method explicitly given that Kotlin generates getters automatically? Method getLogger() is not visible in Doer class, but if I declare it explicitly it conflicts with generated one. Are there better options to test this?

Second question is how to mock the object instance, since it is initialized by language which is out of my control?

Petr Gladkikh
  • 1,906
  • 2
  • 18
  • 31

0 Answers0