>我正在尝试对一个看起来像这样的方法进行单元测试:
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覆盖率得分。