【问题标题】:How to mock kotlin object for unit testing如何模拟 kotlin 对象进行单元测试
【发布时间】:2019-08-22 06:09:00
【问题描述】:

我有一个示例方法(我需要编写测试用例),如下所示,

 fun setName(val auxName:String) {
        val configUrl = getConfig(auxName)
    }

我想模拟 getConfig 方法并返回一个特定的字符串值。 getConfig 是 Kotlin 对象中的一个方法,如下所示,

object Configuration{
    fun getConfig(auxName:String){
    ....
    }
    }

以下是我尝试过的测试

@Test
fun setTest()
{
val testname="test"
val testObject=Mockito.mock(Configuration::class.java)
doReturn("configTest").`when`(testObject).getConfig(Mockito.anyString())
setName(testname)
}

我没有收到任何错误,但方法 getConfig 未被模拟。执行实际的实现。我也尝试使用 Powermockito。请帮我解决这个问题

【问题讨论】:

  • 你怎么知道这个方法不是模拟的?您是否尝试过验证?
  • @0xalihn 居然进入了mocked方法,原来的方法正在执行中

标签: unit-testing kotlin mockito powermockito


【解决方案1】:

问题可能出在单例对象上,你可以试试这个答案:https://stackoverflow.com/a/37978020/3703819

【讨论】:

  • 我试过了,但它仍然没有被嘲笑。原来的方法正在被执行。
猜你喜欢
  • 2019-01-18
  • 2020-02-07
  • 1970-01-01
  • 2015-08-30
  • 2013-02-07
  • 2018-04-04
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多