This article discusses different approaches for testing classes, services, and PlayFramework controllers using scalatest.
Setting up the project dependencies First step is to add to build.sbt the next dependency:
"org.scalatest" %% "scalatest" % "3.2.2" The following template unit test uses the WordSpec style which offers a natural way for writing tests. scalatest offers more styles, but I find this one more expressive.
PlaySpec (found in the PaylFramework) extends WordSpec and has a similar behavior.
The Play Framework is built upon Akka actors, but does everything so that you don’t really need to use them. Despite this, actors are easy to integrate with Play, precisely because it is built on them (there is already an actor system for you to use)
A few exceptions are:
websockets handling (doing that using actors is a breeze) scheduling tasks for doing daily or weekly jobs Akka actors use messages to communicate between among them.
This article shows how to make remote requests to services using Scala and the Play-Framework. It documents some recommended features that can improve the reliability of the request.
Setup Make sure you add the following dependency to build.sbt
libraryDependencies += ws GET request GET request to a remote service
import scala.concurrent.Future import play.api.http.Status._ import play.api.libs.ws.WSClient import play.api.libs.json.{JsSuccess, Json} case class UnexpectedResponseStatus(message: String) extends Exception(message) case class InvalidServiceResponse(message: String) extends Exception(message) class SomeClass @Inject()( ws: WSClient ) { def getFromRemoteService(url: String): Future[Option[MyClass]] = { ws.
So far I have really liked this concept. The only con is that some times is difficult to find full examples that use the latest version.
Installing sbt We need sbt for compiling and running Play applications.
brew install sbt@1 Executing a first application Check the tutorials page to see how to create a first project.
Pretty much:
sbt new playframework/play-java-seed.g8 sbt run And then visit localhost:9000
Play 2.