Scala和Mockito:不推荐使用关键字“ then”

时间:2019-08-20 16:13:35

标签: scala mockito

Scala的未来版本可能使用then作为关键字,如SIP-12所述。

编译器已经对其显示警告:

  

不赞成使用then作为标识符。它可以在以后的scala版本中用作关键字。   然后,在以后的scala版本中,将Word保留为可能的关键字。不建议使用,因为它是标识符。参见SIP-12。

我正在使用Mockito,并且有许多then方法被调用。

BDDMockito.then(entityService).should(Mockito.times(2)).findBy(any)

有人知道是否有替代方法吗?

2 个答案:

答案 0 :(得分:4)

在scala中,将所有标识符包装在反引号“`”中,以防止将其视为关键字。

BDDMockito.`then`(entityService).should(Mockito.times(2)).findBy(any)

最常用于允许将字段/变量/方法命名为type,但它也应适用于then。有时也可以将空格嵌入标识符中。

case class Bar(`class`: Int, `type`: String) {
  def `class with type`: String = s"${`class`}_${`type`}"
}

Bar(42, "skidoo").`class with type` == "42_skidoo"

答案 1 :(得分:0)

您尝试过mockito-scala吗?其API专为Scala量身定做,可满足Java版本不具备的所有语言功能