Skip to content
This repository has been archived by the owner on Apr 6, 2021. It is now read-only.

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
- make example testable
  • Loading branch information
ChriFo committed Aug 24, 2020
1 parent 9c5d93b commit a0698f8
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 24 deletions.
5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ license = "MIT"
repository = "https://github.com/ChriFo/test-server-rs"
publish = false
edition = "2018"
build = "build.rs"

[dependencies]
actix-rt = "1.1.1"
Expand All @@ -17,5 +18,9 @@ futures = "0.3.5"
http = "0.2.1"
rand = "0.7.3"

[build-dependencies]
skeptic = "0.13.4"

[dev-dependencies]
skeptic = "0.13.4"
ureq = { version = "1.4.0", default-features = false }
40 changes: 16 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,35 +12,27 @@ test-server = { git = "https://github.com/ChriFo/test-server-rs", tag = "0.9.0"

[HttpResponse](https://actix.rs/api/actix-web/stable/actix_web/struct.HttpResponse.html) and [HttpRequest](https://actix.rs/api/actix-web/stable/actix_web/struct.HttpRequest.html) are re-exports from [actix-web](https://github.com/actix/actix-web).

```rust
use failure::Error;
use test_server::{HttpRequest, HttpResponse};
```rust,skt-test
// start server at random port
let _ = test_server::new("127.0.0.1:0", test_server::HttpResponse::Ok)?;
#[test]
fn example_test() -> Result<(), Error> {
// start server at random port
let _ = test_server::new("127.0.0.1:0", HttpResponse::Ok)?;
// start server at given port
let server = test_server::new("127.0.0.1:8080", |req: test_server::HttpRequest| {
println!("{:#?}", req);
test_server::HttpResponse::Ok().body("hello world")
})?;
// start server at given port
let server = test_server::new("127.0.0.1:8080", |req: HttpRequest| {
println!("Request: {:#?}", req);
HttpResponse::Ok().body("hello world")
})?;
// request against server
let _ = get_request(&server.url());
// request against server
let _ = client::get(&server.url());
assert_eq!(1, server.requests.len());
assert_eq!(1, server.requests.len());
// requests are Request from crate http (which is re-exported as http as well)
let last_request = server.requests.next().unwrap();
// requests are Request from http crate (which is re-exported as http as well)
let last_request = server.requests.next().unwrap();

assert_eq!("GET", last_request.method());
assert_eq!("/", last_request.uri().path());
// body, headers and query params are also available

Ok(())
}
assert_eq!("GET", last_request.method());
assert_eq!("/", last_request.uri().path());
// body, headers and query params are also available
```

For more examples have a look at the [tests](https://github.com/ChriFo/test-server-rs/blob/master/tests/server.rs).
16 changes: 16 additions & 0 deletions README.md.skt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```rust,skt-test
extern crate anyhow;
extern crate test_server;
extern crate ureq;
fn get_request(url: &str) -> ureq::Response {{
ureq::get(url).call()
}}
fn main() -> anyhow::Result<()> {{
{}
Ok(())
}}
```
3 changes: 3 additions & 0 deletions build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
fn main() {
skeptic::generate_doc_tests(&["README.md"]);
}
1 change: 1 addition & 0 deletions tests/skeptic.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include!(concat!(env!("OUT_DIR"), "/skeptic-tests.rs"));

0 comments on commit a0698f8

Please sign in to comment.