2016-09-12 15 views
0

変数の初期化がbeforeAllメソッドの内部で(オブジェクトのインスタンス化後に)行われるときにvarを使用しないようにする方法はありますか?BeforeAllでvarを使用しないようにする方法

私は不変性を好むと思います...

https://github.com/holdenk/spark-testing-base/blob/master/src/main/1.3/scala/com/holdenkarau/spark/testing/SharedSparkContext.scala

+0

があります。http://eugenezhulenev.com/blog/2014/10/18/run-tests-in-stand私はコンストラクタでコンテキストを初期化する際にどのような意味があるのか​​わかりませんが、 – Markon

答えて

0

あなたのケースのための最善の方法は次のとおりです。

lazy val x: Type = _ 
override def beforeAll = { 
    x = //you code 
} 
+0

'lazy var'はありません。 –

+0

これは私のためにコンパイルされません、それはまだ再割り当てがあると思っています –

0

あなたはScalaは一つだけ、それらのがあることを確認します、これを達成するために外部のコンパニオンオブジェクトを使用することができます。

object SparkContextProvider { 
    val sparkContext: SparkContext = { 
     val sc = new SparkContext(conf) 
     setup(_sc) 
     sc 
    } 
} 

あなたはテストコードには、

trait SharedSparkContext extends SparkContextProvider { 
    val sc = SparkContextProvider.sparkContext 
} 
関連する問題