簡體   English   中英

用於 IntelliJ IDEA 10.5 的 Scala 案例 Class 中的部分 EMMA 代碼覆蓋

[英]Partial EMMA code coverage in Scala Case Class for IntelliJ IDEA 10.5

我正在使用 IntelliJ IDEA 10.5 和 8 月 14 日更新的 Scala 插件 v0.4.1338 和 Scala 2.9.0.1。 我最近開始使用 IDEA 中的 EMMA 測試覆蓋率實用程序來生成覆蓋率報告。

我無法確定為什么我的 Scala 案例 class 的構造函數行僅顯示部分(黃色)覆蓋。 我查看了 EMMA 常見問題解答並在線研究了此事,但沒有成功。 有誰知道如何在 class 案例上達到 100% 的覆蓋率?

case class A(a: Any)為您生成多種方法,其中:

  1. A#equals
  2. A#canEqual
  3. A#hashCode
  4. A#toString
  5. A#productPrefix
  6. A#productElement
  7. A#productArity
  8. A#productIterator
  9. A#copy
  10. A.unapply
  11. A.apply

其中大部分將在與 class 定義相同的行號的字節碼中報告。

您可以編寫一個反射實用程序來為您的案例類在每個單元測試中調用所有這些方法,修補代碼覆蓋工具以忽略該行,或者只是忍受它。

我知道這是一個非常古老的問題,但這個問題在某種程度上仍然存在。 給定一個簡單的案例 class,為了從 IntelliJ 獲得完整的覆蓋率報告,您還需要測試unapply方法。

// Code

final case class Foo(symbol: String, name: String)

// Test

val myFoo = Foo("TheSymbol", "TheName")

Foo.unapply(myFoo).get should be(("TheSymbol", "TheName"))

沒有它,我得到了 50% 的基本案例 class 的覆蓋率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM