scala specs2在测试中使用变量

时间:2014-05-10 17:51:09

标签: scala specs2

object Test extends Specification {

  var test = 1
  println("test: " + test)
  "Tests" should {
    "A" in {
      println("test in A: " + test)
      test = 2
      1 mustEqual 1
    }
    "B" in {
      println("test in B: " + test)
      test = 3
      1 mustEqual 1
    }

  }

  println("test end: " + test)

}

当我进行测试时,我得到:

测试:1 测试结束:1 测试:1 测试结束:1 在B中进行测试:1 在A:1中进行测试

我想利用这个变量,有可能吗?谢谢!

1 个答案:

答案 0 :(得分:1)

奇怪行为的原因是specs2同时运行规范。

这是其中一项功能,您可以在此处阅读http://etorreborre.github.io/specs2/(查看功能标题)。

您可以通过在规范中添加sequential调用来按顺序运行它。

object Test extends Specification {
  var test = 1

  sequential // <- this will make the examples sequentially

  println("test: " + test)
  "Tests" should {
    "A" in {
      println("test in A: " + test)
      test = 2
      1 mustEqual 1
    }
    "B" in {
      println("test in B: " + test)
      test = 3
      1 mustEqual 1
    }

  }

  println("test end: " + test)

}