我有一个看起来像这样的代码,用于检测赋值中的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中包装整个东西。但是,这有点打败了更优雅的语法。
或者我运气不好?
答案 0 :(得分:0)
您可以直接为null
分配类型,这应该触发隐式转换:
"ensure Scala RecommendedDomain from null must throw NPE" in {
((null: CoreRecommendedDomain): APIRecommendedDomain) must throwA[NullPointerException]
}