在 Scala 中模拟或监视对象方法以进行单元测试

Object method mocking or spying for unit testing in Scala

有没有办法模拟或监视 Scala 对象中的方法?

object Object {

  def fun(value: String) = println(value)

  def main(args: Array[String]): Unit = {
    fun("executed")
    sys.exit(0)
  }
}

我想做这样的事情:

spy(Object.fun)

我查看了 ScalaMockEasyMockJMockMockito,但无法真正理解。

更好的方法是不为此使用 Scala 对象。它不可测试。

就像在 java 中一样,您应该避免使用 Static,因为它不能用 mock 代替。

如果你想要 class 的一个实例,你可以在 object

中实例化一次