首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对ScalaTest中beforeAll构造的有用性的一点疑惑

对ScalaTest中beforeAll构造的有用性的一点疑惑
EN

Stack Overflow用户
提问于 2016-02-21 02:59:52
回答 2查看 1.7K关注 0票数 2

关于scalaTest中“beforeAll”这样的方法的有用性,我有更多的哲学困惑。我一直在寻找一个答案,为什么需要像beforeAll这样的结构?我确实理解为什么这个设计决定是有原因的,但却不能仔细考虑。有人能帮上忙吗?

例如根据在线教程所建议的方式,

代码语言:javascript
复制
class TestExample extends FunSuite with BeforeAndAfterAll {
   private var _tempDir: File = _
   protected def tempDir: File = _tempDir

 override def beforeAll(): Unit = {
  super.beforeAll()
  _tempDir = Utils.createTempDir(namePrefix = this.getClass.getName)
  }

  test("...") {
   // using the variable in the function
  }
 } 

vs

代码语言:javascript
复制
class TestExample extends FunSuite with BeforeAndAfterAll {
   private val tempDir: File = Utils.createTempDir(namePrefix = 
   this.getClass.getName) 
  }

  test("...") {
   // Use the initialized variable here.
 } 
EN

Stack Overflow用户

发布于 2016-02-22 04:52:25

如果你要在afterAll中进行清理,我认为在beforeAll中进行设置是对称的。另外,如果你需要做一些不涉及初始化实例变量的副作用,可以使用beforeAll。但是,在您给出的示例中,您在afterAll中不需要做任何清理工作,而在所有测试之前所做的只是初始化实例变量,我将使用普通的老式初始化。

val初始化器和beforeAll之间的另一个区别是val初始化器在类被实例化时发生,而beforeAll在实例执行时发生。如果你想延迟初始化直到类运行,你可以使用惰性函数。

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35527660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档