如何在 Scala 中测试对象的私有方法

2023-12-11

我有一个示例对象:

object Foo {
  private def sayFoo = "Foo!"
}

我想测试私有 sayFoo 方法而不使用以下解决方法: 1. 没有定义为package private 2. 不将其定义为 protected 并在测试类中继承它

我看到一种可能的解决方案是扩展 privateMethodTester 但它没有 似乎只适用于类的对象。

现在,我知道有些人(如果不是很多的话)说您不应该测试私有方法,而只能测试公共方法(api)。尽管如此,我仍然想测试它们。

谢谢提前


它无法通过任何标准方法进行测试。

但是,如果您需要“覆盖”该代码部分,请测试在其实现中使用该私有方法的方法。这是间接的,理所当然的,但它确实有效地测试了代码。

例如,在您的班级中您可以有另一种方法:

def dontSayBar = {
    sayFoo()
    println("Other processing...")
}

如果经过测试,这将“覆盖”私有方法中的代码。

附:一个好的经验法则是,如果您看到代码未显示在coverage运行,那么您可能实际上并不需要该代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Scala 中测试对象的私有方法 的相关文章

随机推荐