Specs2:在隐式转换的val赋值中检测异常

时间:2015-03-08 21:58:31

标签: scala exception specs2

我有一个看起来像这样的代码,用于检测赋值中的NPE。赋值触发NPE发生的隐式转换(它隐式地从CoreRecommendedDomain转换为APIRecommededDomain:

"ensure Scala RecommendedDomain from null must throw NPE" in {
  val n: CoreRecommendedDomain = null
  var r: APIRecommendedDomain = APIRecommendedDomain("example.com")
  (r = n) must throwA[NullPointerException]
}

以上代码有效。但是,当然,我宁愿不必在var中创建一个虚拟的APIRecommendedDomain来测试赋值。当我做类似的事情时,我更愿意检测NPE:

val r: APIRecommendedDomain = n

我似乎无法找到如何在try / catch中包装整个东西。但是,这有点打败了更优雅的语法。

或者我运气不好?

1 个答案:

答案 0 :(得分:0)

您可以直接为null分配类型,这应该触发隐式转换:

"ensure Scala RecommendedDomain from null must throw NPE" in {
  ((null: CoreRecommendedDomain): APIRecommendedDomain) must throwA[NullPointerException]
}