播放 + specs2 + scalacheck?

Play + specs2 + scalacheck?

我似乎想不出如何整合这三者。我找到了如何使用 specs2scalacheck 进行测试,如下所示:

class ExampleSpec extends Specification with ScalaCheck { def is = s2"""
   Example
    scalacheck $e1
  """
  def e1 = prop((i: Int) => i == i)
}

使用所谓的Acceptance specification style

但是,对于 Play,必须使用 Unit specification style 才能使用 WithApplication 等好东西。

我天真地认为这会起作用:

class PlayExampleSpec extends PlaySpecification with ScalaCheck {
  "Play" in new WithApplication() {
    "scalacheck" in prop((s: String) => s == s)
  }
}

测试根本没有执行。我浏览了一半的互联网无济于事。请帮忙

如果你正在使用 WithApplication 你需要能够在 属性 失败时抛出异常(因为 prop 是纯粹的并且会在 [=11 的主体中丢失=]). AsResult 为您做这件事:

import org.specs2.execute.AsResult

class TestMutableSpec extends mutable.Specification with ScalaCheck {
  "Example" in new WithApplication { 
    AsResult {
      prop((s: String) => s != s)
    }
  }
}

上面的例子应该会失败。