diff options
author | adamw <adam@warski.org> | 2017-10-17 17:28:50 +0200 |
---|---|---|
committer | adamw <adam@warski.org> | 2017-10-17 17:28:50 +0200 |
commit | 6e109a964383bfe5e2be04f65fa7cc1356a97cbe (patch) | |
tree | 7764ff94d72e0ffbf1e593fb8c5886562dc57f33 /docs/testing.rst | |
parent | 06bd5c95d04dd57e1b6c2572b94336b8fdb68bfa (diff) | |
download | sttp-6e109a964383bfe5e2be04f65fa7cc1356a97cbe.tar.gz sttp-6e109a964383bfe5e2be04f65fa7cc1356a97cbe.tar.bz2 sttp-6e109a964383bfe5e2be04f65fa7cc1356a97cbe.zip |
More docs
Diffstat (limited to 'docs/testing.rst')
-rw-r--r-- | docs/testing.rst | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/docs/testing.rst b/docs/testing.rst deleted file mode 100644 index 0ac21c2..0000000 --- a/docs/testing.rst +++ /dev/null @@ -1,44 +0,0 @@ -Testing -======= - -If you need a stub backend for use in tests instead of a "real" backend (you -probably don't want to make HTTP calls during unit tests), you can use the -``SttpBackendStub`` class. It allows specifying how the backend should respond -to requests matching given predicates. - -A backend stub can be created using an instance of a "real" backend, or by -explicitly giving the response wrapper monad and supported streams type. - -For example:: - - implicit val testingBackend = SttpBackendStub(HttpURLConnectionBackend()) - .whenRequestMatches(_.uri.path.startsWith(List("a", "b"))) - .thenRespond("Hello there!") - .whenRequestMatches(_.method == Method.POST) - .thenRespondServerError() - - val response1 = sttp.get(uri"http://example.org/a/b/c").send() - // response1.body will be Right("Hello there") - - val response2 = sttp.post(uri"http://example.org/d/e").send() - // response2.code will be 500 - -However, this approach has one caveat: the responses are not type-safe. That -is, the backend cannot match on or verify that the type included in the -response matches the response type requested. - -It is also possible to create a stub backend which delegates calls to another -(possibly "real") backend if none of the specified predicates match a request. -This can be useful during development, to partially stub a yet incomplete -API with which we integrate:: - - implicit val testingBackend = SttpBackendStub.withFallback(HttpURLConnectionBackend()) - .whenRequestMatches(_.uri.path.startsWith(List("a"))) - .thenRespond("I'm a STUB!") - - val response1 = sttp.get(uri"http://api.internal/a").send() - // response1.body will be Right("I'm a STUB") - - val response2 = sttp.post(uri"http://api.internal/b").send() - // response2 will be whatever a "real" network call to api.internal/b returns - |