在PlayFramework中测试期间替换特征的实现?

时间:2018-01-30 13:59:06

标签: scala dependency-injection playframework guice playframework-2.6

我有一个特性Config,其中包含一堆配置值。

我有这个特性的默认impl DefaultConfig,其中包含这些字段的生产值。我在@ImplementedBy( classOf[DefaultConfig] )上使用Config,在我的控制器中,它被注入:

class SignupController @Inject()(cc: ControllerComponents, config: Config)

到目前为止这一切都有效 - 但我想要另一个Config的实现,称为TestConfig,其中包含测试数据库的凭据等。我喜欢在测试期间注入TestConfig而不是DefaultConfig

有关如何实现这一目标的任何想法?我的测试从PlaySpec with GuiceOneAppPerSuite with Injecting

延伸

1 个答案:

答案 0 :(得分:1)

启动测试应用程序时,您可以覆盖注入的类:

override lazy val app = new GuiceApplicationBuilder()
      .overrides(bind[Config].to[TestConfig])
      .build