gpt4 book ai didi

scala - 如何在 Scala 中测试对象的私有(private)方法

转载 作者:行者123 更新时间:2023-11-28 20:20:12 28 4
gpt4 key购买 nike

我有一个示例对象:

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

我想在没有以下解决方法的情况下测试私有(private) sayFoo 方法:1.没有将其定义为包私有(private)2. 没有将其定义为 protected ,而不是在测试类中继承它

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

现在,我知道有些人(如果不是很多的话)说您不应该测试私有(private)方法,而应该只测试公共(public)方法 (api)。尽管如此,我还是想测试一下。

高级的谢谢

最佳答案

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

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

例如,在你的类中你可以有另一种方法:

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

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

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

关于scala - 如何在 Scala 中测试对象的私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com