Specs2 IT环境tearDown

时间:2014-04-25 10:32:40

标签: scala integration-testing specs2

我需要一些帮助..我正在使用 specs2 ,所以运行我的集成测试。 所以在一切运行之前,我设置我的 simplicators (我的系统与之交互的假服务器)

问题是,我需要找到一种方法,知道在完成所有测试后何时关闭这些服务器。 步骤()不够好,因为它们发生在每个单独的测试范围内。 所有测试完成后我需要运行一些东西。

任何想法?提前谢谢!

1 个答案:

答案 0 :(得分:1)

发现它了! here is how it is done

如果你也很挣扎 - 这里有一个设置IT环境的好界面:

trait FakeServer {
  def setup: Unit
  def tearDown: Unit
}

object ITEnvironment extends FakeServer{
  private val simplicators: Seq[FakeServer] = Seq(new FakeWebServer)

  override def setup: Unit = simplicators foreach { server => server.setup}
  override def tearDown: Unit = simplicators foreach { server => server.tearDown}
}

trait Specs2ITEnvironment { this: Specification =>
  sequential
  override def map(fs: =>Fragments) = Step( {ITEnvironment.setup} ) ^ fs ^ Step( {ITEnvironment.tearDown} )
}

class LoginIT extends SpecificationWithJUnit with Specs2ITEnvironment{
    ... your test here ...
}