Я хочу проверить дао (play 2.6.21, play-slick 3.0.3
):
@Singleton
class MyDao @Inject()(@NamedDatabase("default") protected val dbConfigProvider: DatabaseConfigProvider)
(implicit val sc: ExecutionContext)
extends HasDatabaseConfigProvider[JdbcProfile] {
...
}
Я размещаю конфигурацию базы данных для тестовой базы данных в ресурсах теста:
slick.dbs.default {
profile = "slick.jdbc.PostgresProfile$"
endpoint = "localhost:12345"
schema = "my_test_schemma"
db {
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://"${slick.dbs.default.endpoint}"/"${slick.dbs.default.schema}""
}
}
В тесте я хочу применить эволюцию:
class MyDaoSpec extends FlatSpec with GuiceFakeApplicationFactory {
implicit lazy val app: Application = fakeApplication()
"dao" should "something" in {
val conf = app.injector.instanceOf[DatabaseConfigProvider]
val db = app.injector.instanceOf[Database]
Evolutions.applyEvolutions(db)
val dao = app.injector.instanceOf[MyDao]
//tests...
}
}
Но это дает мне ошибку:
Ошибки конфигурации Guice для instanceOf[Database]
:
1) Не реализована реализация для play.api.db.Database. в то время как
поиск play.api.db.Database
Итак, как мне получить доступ к базе данных и применить к ней эволюцию?
Я обнаружил, что мне нужно использовать EvolutionComponents
, но не понимаю, как его использовать