Я перехожу с 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"
)
Есть идеи?