Пока вы уже получили ответ, я предлагаю вместо этого использовать базовую черту, такую как:
import javax.inject.{Inject, Singleton}
import akka.actor.ActorSystem
import play.api.libs.concurrent.CustomExecutionContext
import scala.concurrent.ExecutionContext
trait DatabaseExecutionContext extends ExecutionContext
@Singleton
class DatabaseAkkaExecutionContext @Inject()(system: ActorSystem)
extends CustomExecutionContext(system, "database.dispatcher")
with DatabaseExecutionContext
Причина в том, что если вы этого не сделаете, вам потребуется принести Акку во время тестирования операций требуя этого контекста выполнения, с чертой, вы должны иметь возможность написать простого исполнителя для ваших тестов, такого как:
implicit val globalEC: ExecutionContext = scala.concurrent.ExecutionContext.global
implicit val databaseEC: DatabaseExecutionContext = new DatabaseExecutionContext {
override def execute(runnable: Runnable): Unit = globalEC.execute(runnable)
override def reportFailure(cause: Throwable): Unit = globalEC.reportFailure(cause)
}
РЕДАКТИРОВАТЬ : я создал подробный пост объясняя это.