【发布时间】:2016-12-06 03:30:56
【问题描述】:
我对 Kotlin 很陌生。
我有一个调用顶级函数(进行 http 调用)的类。我正在尝试为我的班级编写单元测试,而无需将其发布到网络上。
有没有办法模拟/powermock/拦截从我的班级到 Kotlin 顶级函数的调用?
class MyClass {
fun someMethod() {
// do some stuff
"http://somedomain.com/some-rest/action".httpGet(asList("someKey" to "someValue")).responseString { (request, response, result) ->
// some processing code
}
}
}
它使用kittinunf/Fuel library 进行httpGet 调用。
它向 String 添加了一个顶级函数,该函数最终调用 Fuel 中的伴随对象函数 (Fuel.get())。
单元测试需要拦截对httpGet的调用,以便我可以返回一个json字符串进行测试。
【问题讨论】:
-
Hey Boon.. 你有完整的例子吗?我正在尝试为我的 Kotlin 燃料调用编写 Junit 测试
-
我按照@miensol 的建议使用了Fuel.testMode() 和executeRequest 覆盖。
-
如果您可以发布代码 sn-p 或发送 github 链接将有很大帮助?
标签: unit-testing mockito kotlin powermock