首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Kotlin中,“何时”是什么意思?

在Kotlin中,“何时”是什么意思?
EN

Stack Overflow用户
提问于 2018-08-23 03:05:05
回答 2查看 214关注 0票数 3

我在用Kotlin创建的Android单元测试中看到这样的代码

代码语言:javascript
复制
`when`(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPreferences)

你能解释一下为什么when? If I remove中围绕着when吗?我看到了一个thenReturn无法解决的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-23 03:25:16

when是Kotlin中的关键字,因为它在when expression中使用。在Mockito中,有一个静态函数,也称为when。之所以会发生这种情况,是因为when在Java语言中不是一个关键字,所以它可用于标识符命名。

反引号是special syntax,它使这些在Java语言中定义的函数仍然可以从Kotlin调用。

Ps。你可能想看看mockito-kotlin,它使一些与Mockito相关的任务在Kotlin中变得更简单,例如,它将when函数重命名为whenever,这样调用起来就更容易、更好。

票数 5
EN

Stack Overflow用户

发布于 2018-08-23 03:51:29

如果你不想像公认的答案中建议的那样依赖于另一个第三方库,你可能想看看BDDMockito (已经是Mockito的一部分了)。这基本上改变了你用Mockito编写测试的风格,并且碰巧提供了对Kotlin友好的函数名,不需要像when那样进行转义

代码语言:javascript
复制
//Given
given(calcService.add(20.0,10.0)).willReturn(30.0);

//when
double result = calcService.add(20.0,10.0);

//then
Assert.assertEquals(result,30.0,0); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51973542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档