0

我有一个Config包含一堆配置值的特征。

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

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

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

任何想法如何实现?我的测试从PlaySpec with GuiceOneAppPerSuite with Injecting

4

1 回答 1

1

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

override lazy val app = new GuiceApplicationBuilder()
      .overrides(bind[Config].to[TestConfig])
      .build
于 2018-01-30T17:59:36.890 回答