我试图对一个看起来像这样的方法进行单元测试:
def foo() = {
val a = Listener.registerCallback(
(bar: Bar, baz: Baz) => {
val x = bar.declare().get
bar.bind(x)
})
return a
}
我可以轻松测试此方法的结果。然而,我的问题是,当我运行一个覆盖率报告(使用sbt-coverage插件和ScalaTest)时,由于使用具有本地值的无法访问的匿名函数的方法,我只能达到我的覆盖阈值。
有没有办法可以测试这个嵌套的匿名函数来提高我的覆盖率?
答案 0 :(得分:3)
也许拔出你测试的方法,然后让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-coverage得分。