相关疑难解决方法(0)

org.scalatest:全局设置(如beforeAllSuites?)

我有一个使用org.scalatest进行一些测试的scala应用程序.这些测试需要一些全局设置(和拆解),以便管理测试数据库.

请不要告诉我我的测试不应该打到数据库,我应该使用Java-DAO-Stub-WTF-Overkill-Way™:-).

我正在使用SBT运行测试,这提供了一种在测试之前和之后执行代码的方法:

    testOptions in Test += Tests.Setup( () => println("Setup") )

    testOptions in Test += Tests.Cleanup( () => println("Cleanup") )
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法访问那里的课程.不出所料,将它们导入build.sbt也不起作用.

有任何想法吗?

installation sbt scalatest

10
推荐指数
1
解决办法
2575
查看次数

在ScalaTest中注入PlaySlick数据库连接

我有以下使用PlaySlick连接到数据库的DAO.该类有一个read我需要使用ScalaTest测试的方法.我的问题是我不知道如何模拟DatabaseConfigProviderUsersDAO类中注入它并测试read方法.这是要测试的类:

class UsersDAO @Inject()(@NamedDatabase("mydb") 
          protected val dbConfigProvider: DatabaseConfigProvider)
          extends with HasDatabaseConfigProvider[JdbcProfile] {

   import driver.api._

   val db1 = dbConfigProvider.get[JdbcProfile].db

   def read (sk: Int) = {
      val users = TableQuery[UserDB]
      val action = users.filter(_.sk === sk).result
      val future = db1.run(action.asTry)
      future.map{
        case Success(s) => 
          if (s.length>0)
            Some(s(0))
          else
            None
        case Failure(e) => throw new Exception ("Failure: " + e.getMessage)
      }
   }

}
Run Code Online (Sandbox Code Playgroud)

这是我尝试编写测试:

class UserDAOTest extends PlaySpec with OneAppPerSuite  {

  implicit override lazy val …
Run Code Online (Sandbox Code Playgroud)

scala scalatest playframework slick play-slick

9
推荐指数
1
解决办法
945
查看次数

标签 统计

scalatest ×2

installation ×1

play-slick ×1

playframework ×1

sbt ×1

scala ×1

slick ×1