ScalaTest トレイトの BeforeAndAfterEach をオーバーライドして、すべてのテストでその機能を 1 回実装したいと考えています。最後にコンパイルしましたが、理由がわかりません。
trait MySetup extends BeforeAndAfterEach {
this : org.scalatest.BeforeAndAfterEach with org.scalatest.Suite =>
var service: String = _
abstract override def beforeEach(): Unit = {
service = "apa"
super.beforeEach()
}
abstract override def afterEach(): Unit = {
service = ""
}
}
それを機能させたのは次の行でした:
this : org.scalatest.BeforeAndAfterEach with org.scalatest.Suite =>
BeforeAndAfterEach 実装の冒頭で見つけてコピーしました。
それは何をし、なぜそれが必要なのですか?
アップデート:
これはよりシンプルなバージョンです。
trait MySetup extends FlatSpec with BeforeAndAfterEach {
var service: String = _
override def beforeEach {
service = "apa"
super.beforeEach
}
override def afterEach {
service = ""
super.afterEach
}
}