Tag: 投射

在Mockito类的模拟过程中投射参数

当我用下面的方法(在Kotlin中) val card: Card = mock<Card>()模拟类时val card: Card = mock<Card>()它会自动将所有参数(cardNumber,expMonth,expYear,CVC)初始化为String,因为它们保存为String。 然而,在我要测试的代码(Java)中,我通过以下方式初始化类卡 Card card = new Card(mView.getCreditCardNumber(), Integer.valueOf(mView.getMonth()), Integer.valueOf(mView.getYear()), mView.getCVV()); 我已经用以下方式嘲笑了这些价值 whenever(mView.creditCardNumber).then { "1234567890123456" } whenever(mView.month).then { "12" } whenever(mView.year).then { "2022" } whenever(mView.cvv).then { "123" } 所以区别在于中间的2个参数应该是整数,而我不能这样做。 我尝试了以下解决方案 whenever(mView.month).then { 12 } whenever(mView.year).then { 2022 } 但是我从Int到String得到CastException。 由于mView.month /年应该是字符串。 那么,有没有办法使这个强制转换,否则我不能够正确地测试代码的其余部分。 请帮忙,否则我疯了。 谢谢 :) !

Kotlin:如何使用List转换:未选中Cast:kotlin.collections.List <Kotlin.Any?>转换为kotlin.colletions.List <Waypoint>

我想写一个函数,返回List中不是第一个或最后一个项目(一个通过点)的每个项目。 该函数获得一个通用的List<*>作为输入。 如果列表中的元素是Waypoint类型,则只能返回结果: fun getViaPoints(list: List<*>): List<Waypoint>? { list.forEach { if(it !is Waypoint ) return null } val waypointList = list as? List<Waypoint> ?: return null return waypointList.filter{ waypointList.indexOf(it) != 0 && waypointList.indexOf(it) != waypointList.lastIndex} } 将List<*>为List<Waypoint> ,我得到警告: 未选中Cast:kotlin.collections.List到kotlin.colletions.List 否则,我无法想出一个办法来实施它。 没有这个警告,什么是正确的方式来实现这个功能?

Kotlin smartcasting近似于使用时的空值

我想分享一些我在Kotlin 表达时所发现的知识:尽管Kotlin的文档虽然写得简单而且即将出版,但是我可以想象它的写作,但却要求提供一个非常全面的理解。 有两件事现在还不清楚: when语句如何匹配多个可为空的实例? 基于函数调用如何匹配? 没有细节,我只会给你代码和结果。 代码中评论了这些发现。 当然,有一些(事后看来)是我首先想到的,但是也有一些令人大开眼界的东西。