Scala тест с игрой: guiceApplicationBuilder не заменяет конфигурацию приложения на конфигурацию теста - PullRequest
0 голосов
/ 18 апреля 2020

Я перехожу с Java на Scala и пытаюсь написать несколько функциональных / регрессионных тестов. Хотя изначально я пытаюсь исправить некоторые ранее существующие тесты, как кажется, когда они выполняются, они используют фактический application.config вместо testApplication.conf.

Это способ тесты написаны:

class ClientValidationTests extends PlaySpec with OneAppPerSuite with MockitoSugar {

  val myConfigFile = new File("test/resources/testApplication.conf")
  val parsedConfig = ConfigFactory.parseFile(myConfigFile)
  val configuration = ConfigFactory.load(parsedConfig)

  override lazy val app: Application = new GuiceApplicationBuilder()
    //.configure(Configuration.apply(ConfigFactory.parseFile(new File("test/resources/testApplication.conf")).resolve()))
    .overrides(bind[Configuration].toInstance(Configuration(configuration)))
    .overrides(bind[ApprovalsClient].to[MockApprovalsClient])
    .overrides(bind[ClientDAO].to[MockClientDAO])
    .build()


  "The validation in the getListForClientWeb method for the web  service" must {
    "throw a UserNotPermittedForActionException when an client does not belong to the provided org" in {
      val clientWebService = app.injector.instanceOf[ClientWebService]
      val clientDao = app.injector.instanceOf[ClientDAO]


      val clientId = -1


      //Verify that mock dao routes do as expected
      clientDao.getId(clientId) mustBe List(-1)

    }
  }
}

Это файловая структура, в которой существуют application.conf и testApplication.conf:

project-root
- app
  - conf
    -application.conf
- test
  - resources
    - testApplication.conf

Здесь используются библиотеки :

scalaVersion := "2.11.6"




ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true) }

libraryDependencies ++= Seq(
  jdbc,
  //anorm dependency
  "com.typesafe.play"       %% "anorm"        % "2.5.3",
  "org.scalatestplus"       %% "play"         % "1.4.0-M4"  % "test",
  "org.mockito"              % "mockito-core" % "1.10.19"   % "test",
  "com.microsoft.sqlserver"  % "mssql-jdbc"   % "6.4.0.jre8"
)

Есть идеи?

...