首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntelliJ IDEA 10.5的Scala Case类中的部分EMMA代码覆盖率

IntelliJ IDEA 10.5的Scala Case类中的部分EMMA代码覆盖率
EN

Stack Overflow用户
提问于 2011-08-17 04:06:17
回答 2查看 1.7K关注 0票数 7

我使用的是8月14日更新的IntelliJ插件v0.4.1338和Scala 2.9.0.1的Scala 10.5。我最近开始使用IDEA中的EMMA测试覆盖率实用程序来生成覆盖率报告。

我无法确定为什么我的Scala case类的构造函数行只显示部分(黄色)覆盖率。我在EMMA的常见问题解答中查找,并在网上研究了这个问题,但没有成功。有没有人知道我怎样才能在一个案例类上达到100%的覆盖率?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-17 05:47:35

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

其中大多数将在字节码中报告,行号与类定义的行号相同。

您可以编写一个反射实用程序来调用case类的每个单元测试中的所有这些方法,修补代码覆盖工具以忽略该行,或者只是忍受它。

票数 4
EN

Stack Overflow用户

发布于 2019-04-20 11:15:32

我知道这是一个非常古老的问题,但在某种程度上,这个问题在今天仍然存在。给定一个简单的case类,为了从IntelliJ获得完整的覆盖报告,您还需要测试unapply方法。

代码语言:javascript
复制
// Code

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

// Test

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

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

在没有它的情况下,像这样的基本案例类的覆盖率达到了50%。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7084309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档