我使用的是8月14日更新的IntelliJ插件v0.4.1338和Scala 2.9.0.1的Scala 10.5。我最近开始使用IDEA中的EMMA测试覆盖率实用程序来生成覆盖率报告。
我无法确定为什么我的Scala case类的构造函数行只显示部分(黄色)覆盖率。我在EMMA的常见问题解答中查找,并在网上研究了这个问题,但没有成功。有没有人知道我怎样才能在一个案例类上达到100%的覆盖率?
发布于 2011-08-17 05:47:35
case class A(a: Any)为您生成了许多方法,其中包括:
A#equalsA#canEqualA#hashCodeA#toStringA#productPrefixA#productElementA#productArityA#productIteratorA#copyA.unapplyA.apply其中大多数将在字节码中报告,行号与类定义的行号相同。
您可以编写一个反射实用程序来调用case类的每个单元测试中的所有这些方法,修补代码覆盖工具以忽略该行,或者只是忍受它。
发布于 2019-04-20 11:15:32
我知道这是一个非常古老的问题,但在某种程度上,这个问题在今天仍然存在。给定一个简单的case类,为了从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%。
https://stackoverflow.com/questions/7084309
复制相似问题