【问题标题】:Code coverage for lambda functionlambda 函数的代码覆盖率
【发布时间】:2015-08-29 08:55:40
【问题描述】:

我有以下带有 lambda 函数的代码:

obj.method(param, () -> { 
      //code here
})

如何通过测试 lambda 函数中的代码来覆盖?

【问题讨论】:

  • 这完全取决于obj.method() 用它做什么。如果它立即调用它,那么只需调用调用obj.method() 的方法。如果它保存以供以后使用,请确保稍后的操作由您的测试执行。
  • 你能分享一个更完整的sn-p吗?
  • 我倾向于将非平凡的 lambda 函数转换为方法,并简单地使用方法引用。这样,您既保留了 lambda 提供的优势 - 传递回调的简洁代码 - 也保留了方法提供的优势 - 作为单独的单元的可见性。
  • 不测试私有方法的建议在这里不适用吗?测试您期望从使用此 lambda 的公共方法中获得的行为,如果您稍后重构,您会省去头疼的问题。

标签: java lambda code-coverage


【解决方案1】:

您可以使用反射,但这很可能容易出错并且适得其反。

我建议你调用使用 lambda 的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-18
    • 2012-06-30
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2017-05-03
    相关资源
    最近更新 更多