scala - Play +specs2+scalacheck?

标签 scala playframework 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 .

但是,通过 PlayUnit specification style必须使用 WithApplication 等好东西。

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

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

测试根本没有执行。我查了半个网上也没有用。请帮忙。

最佳答案

如果您使用 WithApplication,您需要能够在属性失败时抛出异常(因为 prop 是纯的,并且会丢失在 的主体中) WithApplication)。 AsResult 为您执行此操作:

import org.specs2.execute.AsResult

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

上面的例子应该会失败。

关于scala - Play +specs2+scalacheck?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079701/

相关文章:

java - Scala "pimpers"的良好命名约定

scala - 在Scala的Seq中添加项目

scala - 将 Actor 状态变量声明为可变变量

scala - 条件应用 `filter`/`where`到一个Spark `Dataset`/`Dataframe`

java - Play Framework 2.2 子项目

playframework - 如何在 Play Framework 中使用 Scala 测试 Akka Actor 的规范示例

playframework - 通过在 Play Framework 中保存 BigDecimal 失去精度

scala - 推断类型参数 [Boolean] 不符合方法过滤器的类型参数范围 [T < : slick. lifted.Rep[_]]

Scala:如何测试调用System.exit()的方法?

scala - 具有 swagger 支持的 scalatra 应用程序的 spec2 测试失败