【问题标题】:Scalatest and Anorm in playframeworkplayframework 中的 Scalatest 和 Anorm
【发布时间】:2012-05-10 12:06:18
【问题描述】:

我正在开发一个 playframework 项目,我们使用 scalatest 进行测试。我们还想做一些数据库测试。在 conf/application.conf 我们建立了一个数据库连接,但是当我们启动我们的测试时这似乎被忽略了。我们如何配置它?

【问题讨论】:

  • 玩还是玩2.0?很重要,API 有分歧

标签: playframework scalatest anorm


【解决方案1】:

您的测试需要在 FakeApplication 上下文中运行。您可以像这样包装每个测试(使用 FunSpec):

describe("MyEntity") {
  it("should do something") {
    running(FakeApplication()) {
      MyEntity.findById(1L).value.name should be("some name")
    }
  }
}

如果您不想对每个测试都重复此操作,您可以使用多种方法,请参阅 scalatest 文档了解有关如何共享修复的信息:sharing fixtures

【讨论】:

  • 如何使用.conf 中定义的测试数据库而不是默认数据库?
  • 此处描述:playframework.org/documentation/2.0.4/ScalaTest 基本上,您使用“additionalConfiguration”映射传递额外的配置:FakeApplication(additionalConfiguration = inMemoryDatabase()) 传递您自己的选项以覆盖与数据库相关的设置(驱动程序、连接 url 等)如果inMemoryDatabase 不是你想要的。
  • 在 conf/ 中添加一个新的 test.conf,其中包括您的 Application.conf,然后覆盖数据库设置。然后,您可以在运行测试时加载此配置文件,方法是将javaOptions in Test ++= Seq( "-Dconfig.file=conf/test.conf") 添加到您的 build.sbt
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多