我正在尝试使用scalatest测试这样的应用程序:
object Main extends App {
val name = "Greg"
}
class JunkTests extends FunSpec with MustMatchers {
describe("Junk Tests") {
it("Junk-1 -- Must do stuff") {
println("Name: "+Main.name)
// some test here
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的名字输出始终为null.如何让我的主要对象在测试期间使用它的设施?在实际使用中我有一个应用程序,它是一个Http服务器,我想发送它的消息,但现在它从未初始化,所以服务器永远不会启动.这个简单的例子表明Main永远不会被初始化.
om-*_*nom 12
应该注意的是,这个特性是使用DelayedInit功能实现的,这意味着在执行main方法之前,对象的字段不会被初始化.
所以你可以:
final val name = "Greg"def name = "Greg"lazyval :( lazy val name = "Greg"所以在这种情况下,以及之前的,无论在哪个顺序初始化都完成)| 归档时间: |
|
| 查看次数: |
937 次 |
| 最近记录: |