java – Kotlin lambda回调的单元测试
发布时间:2020-12-15 03:09:15 所属栏目:Java 来源:网络整理
导读:假设我们有以下功能来测试 fun loadData(dataId: Long,completion: (JsonElement?,Exception?) - Unit) { underlayingApi.post(url = "some/rest/url",completion = { rawResult,exception - val processedResult = processJson(rawResult) completion(proce
假设我们有以下功能来测试
fun loadData(dataId: Long,completion: (JsonElement?,Exception?) -> Unit) { underlayingApi.post(url = "some/rest/url",completion = { rawResult,exception -> val processedResult = processJson(rawResult) completion(processedResult,exception) }) } 我很清楚如何模拟,注入,存根和验证对underlayingApi的调用. 如何验证通过完成返回的结果(processedResult,exception)? 解决方法
要测试lambdas行为,必须模拟underlayingApi,通过像这样的InvoactionOnMock对象调用lambda.
`when`(underlayingApi.post(eq("some/rest/url"),any())).thenAnswer { val argument = it.arguments[1] val completion = argument as ((rawResult: String?,exception: Exception?) -> Unit) completion.invoke("result",null) } 这导致在被测对象内调用回调.现在检查被测对象的回调是否正常工作验证它是否正常. objUnderTest.loadData(id,{ json,exception -> assert.... }) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java-me – 我如何开始使用J2ME?
- java – System.out.println()是一个字段的方法?
- java – LibGdx对象池,用于同一父类的许多对象
- java简单读取properties配置文件的方法示例
- ”””是一个很好的方法来转换一个整数到字符串在Java中?
- java – 禁用WebView链接可在模拟器上运行,但在设备上无效
- std :: vector中的c-std :: remove_if polymorphic std ::
- java – 如果已经创建了用户,请更正Firebase的代码位置?
- java – `String.class`和`new Class [] {String.class}`有
- 在Clojure中,如何动态使用java类?