如何在 Scala 中使用深度嵌套的匿名函数对闭包进行单元测试



>我正在尝试对一个看起来像这样的方法进行单元测试:

def foo() = {
  val a = Listener.registerCallback(
    (bar: Bar, baz: Baz) => {
      val x = bar.declare().get
      bar.bind(x)
  })
  return a
}

我可以很容易地测试这种方法的结果。然而,我的问题是,当我运行覆盖率报告(使用 sbt 覆盖率插件和 ScalaTest)时,由于方法持有具有本地值的无法访问的匿名函数,我离达到覆盖率阈值还有一点点。

有没有办法测试这个嵌套的匿名函数来提高我的覆盖率分数?

也许拉

出一个你测试的方法,然后让 eta 扩展将方法变成一个函数?像这样:

def bippy(bar: Bar, baz: Baz) = {
  val x = bar.declare().get
  bar.bind(x)
}
def foo() = {
  val a = Listener.registerCallback(bippy)
  return a
}

也就是说,现在你可以写一个针对bippy的单元测试,并希望通过sbt覆盖率得分。

最新更新