我需要导入不同的库并根据我的源代码的使用(即运行和测试)做一些稍微不同的事情。
如果我有各种看起来像这样的生产源文件:
import scala.slick.driver.PostgresDriver.simple._
import Database.threadLocalSession
case class SomeBusinessObject(...)
将其更改为以下进行测试的好方法是什么(这意味着我想在测试期间使用不同的数据库):
import scala.slick.driver.h2.simple._
import Database.threadLocalSession
case class SomeBusinessObject(...)
哦,还有一个数据库类来保存我正在使用的任何数据库的密钥:
import scala.slick.driver.PostgresDriver.simple._
// Use the implicit threadLocalSession
import Database.threadLocalSession
object DB{
val get = {
Database.forURL("jdbc:postgresql:test:slick",
driver="org.postgresql.Driver",
user="postgres",
password="xxxx")
}
}
我做了一些研究,看起来蛋糕模式可能是这类事情的关键,但如果有人能让我开始,那就太好了(如果蛋糕是正确的方法)
更新:
自从提出这个问题后,我在Slick 示例中找到了我想要的东西。它真的把它分开了!几周前我研究了这些例子,但不记得我在哪里看到的。