小编dav*_*ell的帖子

覆盖特质和自我类型

我想覆盖ScalaTest特性BeforeAndAfterEach,以便为我的所有测试实现一次.最后我得到它编译,但我不明白为什么.

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 = ""
  }
}
Run Code Online (Sandbox Code Playgroud)

让它运作的是线:

  this : org.scalatest.BeforeAndAfterEach with org.scalatest.Suite =>
Run Code Online (Sandbox Code Playgroud)

我在BeforeAndAfterEach实现的开头找到它并复制它.

它做了什么,为什么需要它?

更新:

这是一个更简单的版本.

trait MySetup extends FlatSpec with BeforeAndAfterEach {
  var service: String = _

  override def beforeEach {
    service = "apa"
    super.beforeEach
  }

  override def afterEach {
    service = "" …
Run Code Online (Sandbox Code Playgroud)

scala traits self-type scalatest

2
推荐指数
1
解决办法
1155
查看次数

标签 统计

scala ×1

scalatest ×1

self-type ×1

traits ×1