Wix Http Testkit is a library that will address many of the End-to-end testing concerns you might encounter.
Wix HTTP Testkit aims to be:
- Simple Testing REST services or starting mock/stub servers is very simple and requires very few lines of code.
 - Fast Leveraging Akka-Http infrastructure, starting servers takes milliseconds.
 - Integrated: Other than providing a set of DSLs to support composing and executing REST HTTP calls and creating and configuring web servers, it also contains out of the box matcher libraries for Specs2 to easily validate each aspect of the tested flow.
 
Import DSL
import com.wix.e2e.http.client.sync._Issue Call
    val somePort = 99123 /// any port
    implicit val baseUri = BaseUri(port = somePort)
    get("/somePath", 
        but = withParam("param1" -> "value") 
          and header("header" -> "value") 
          and withCookie("cookie" -> "cookieValue"))Use Specs2 Matcher suite to match response
    import com.wix.e2e.http.matchers.ResponseMatchers._
    put("/anotherPath") must haveBodyWith("someBody")For more info see Http Client Documentation and Response Matchers Suite.
Import Factory
    import com.wix.e2e.http.server.WebServerFactory._Run an easily programmable web server
    val handler: RequestHandler = { case r: HttpRequest => HttpResponse()  }
    val server = aMockWebServerWith(handler).build
                                            .start()Or run a programmable that will record all incoming messages
    val server = aStubWebServer.build
                               .start()
Match against recorded requests
  import com.wix.e2e.http.matchers.RequestMatchers._
  
  
  server must receivedAnyRequestThat(must = beGet)For more info see Web Server Documentation and Request Matchers Suite.
HTTP-testkit version '0.1.25' is available on Maven Central Repository. Scala versions 2.11.x, 2.12.x and 2.13.x are supported.
Simply add the wix-http-testkit module to your build settings:
libraryDependencies += "com.wix" %% "http-testkit" % "0.1.25"<dependencies>
  <dependency>
    <groupId>com.wix</groupId>
    <artifactId>http-testkit_${scala.dependencies.version}</artifactId>
    <version>0.1.25</version>
  </dependency>
</dependencies>
- Rest Client: a declarative REST client Documentation.
 - Simplicator Web Servers: Easily configurable web servers Documentation.
 - Specs2 Matchers Suite: Comprehensive matcher suites Response Matchers and Request Matchers.
 
Ideas and feature requests welcome! Report an issue or contact the maintainer directly.
This project is licensed under MIT License.