Контроллер тестирования с настройкой в ??игре

У меня есть следующий контроллер, который получает файл конфигурации:

class Demo @Inject() (config: Configuration) extends InjectedController {

В тестовом файле я хочу создать экземпляр контроллера, но я не уверен, как передать частный def controller = {new Demo () {переопределить def controllerComponents: ControllerComponents = Helpers.stubControllerComponents ()}} файл:

ServiceConfiguration

Как я могу это достичь?

playframework,

1

Ответов: 1


0

Вам нужны две вещи:

  1. Класс использует конфигурацию, а затем вводит ее в класс контроллера / модели. А теперь давайте скажем, что наш класс application.confсодержит значения из Guice.

  2. В вашем тесте вы используете GuiceOneAppPerSuitинъекцию и Configurationимеете приложение и вводите класс Configuration.

Например, ваш тестовый файл для Demoкласса будет выглядеть примерно так:

class DemoSpec extends GuiceOneAppPerSuit { //with whatever other trait you want to bind in, like PlaySpec, Matchers, etc. 
  val injector: Injector = app.injector
  val conf = injector.instanceOf(classOf[ServiceConfiguration])

  // Your tests 
} 

Примечание . Вы не хотите иметь кухонную раковину конфигурации в одном месте. У вас могут быть разные классы для разных конфигураций; а затем вводят их в соответствующие классы контроллеров / моделей и связанные с ними тестовые классы.

playframework,
Похожие вопросы