如何从测试内部调用 App 对象

How to call App object from inside of tests

我有一个扩展 App 特征的对象,我想编写一些使用该对象的测试。例如。

object EntryPoint extends App {
  println("running the app")
  // runs misc code
}

我想写这样的东西:

class EntrySpec extents FlatSpec {
  val entryPoint = EntryPoint(Array("Some arg"))
  // do stuff with the entrypoint object
}

但是当我尝试这样做时,我似乎无法在我的测试中访问 EntryPoint 对象。所有其他对象和 类 正常解析。这里出了什么问题?

只需在EntrySpec

中写上.main(..)

/src/main/scala/EntryPoint.scala

object EntryPoint extends App {
  println(s"running the app, args=${args.mkString}")
}

/src/test/scala/EntrySpec.scala

import org.scalatest.FlatSpec

class EntrySpec extends FlatSpec {
  EntryPoint.main(Array("Some arg")) // prints "running the app, args=Some arg"

  assert(1 + 1 === 2)
}

一切正常。