[−][src]Crate anneal
A crate for testing Iron handlers and middleware
This crate generates requests in a very similar way to iron-test but allows the testing of individual middleware in isolation.
Example
#[test] fn anneal_demo() { RequestBuilder::new(Method::Post, "https://127.0.0.1:8080/") .set_header(headers::ContentType::json()) .set_body("this is a body".into()) .request(|mut req| { let mut headers = Headers::new(); headers.set(headers::ContentLength(14)); headers.set(headers::UserAgent("anneal".into())); headers.set(headers::ContentType::json()); assert_eq!(req.headers, headers); assert_eq!(req.method, Method::Post); assert_eq!(req.url, "https://127.0.0.1:8080/".parse().unwrap()); assert_eq!(req.local_addr, "127.0.0.1:8080".parse().unwrap()); assert_eq!(req.remote_addr, "127.0.0.1:3000".parse().unwrap()); assert_eq!(req.version, HttpVersion::Http11); let mut s = String::new(); req.body.read_to_string(&mut s).unwrap(); assert_eq!(s, "this is a body"); }) }
Features
cookies
: adds a method to add a CookieJar
from
cookie to the request
json
: adds a method to set the body to a json object via
serde_json
jsonapi
: adds a pair of methods for adding
json-api documents to a request body
Structs
RequestBuilder | |
ResponseExamine | Wraps a response for easier examination in unit tests |