mirror of https://github.com/rwf2/Rocket.git
Add tests for the errors example
This commit is contained in:
parent
2852c526c3
commit
5c12bc988c
|
@ -7,3 +7,6 @@ workspace = "../../"
|
|||
[dependencies]
|
||||
rocket = { path = "../../lib" }
|
||||
rocket_codegen = { path = "../../codegen" }
|
||||
|
||||
[dev-dependencies]
|
||||
rocket = { path = "../../lib", features = ["testing"] }
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
|
||||
extern crate rocket;
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
||||
#[get("/hello/<name>/<age>")]
|
||||
fn hello(name: &str, age: i8) -> String {
|
||||
format!("Hello, {} year old named {}!", age, name)
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
use super::rocket;
|
||||
use rocket::testing::MockRequest;
|
||||
use rocket::http::{Method, Status};
|
||||
|
||||
fn test(uri: &str, status: Status, body: String) {
|
||||
let rocket = rocket::ignite()
|
||||
.mount("/", routes![super::hello])
|
||||
.catch(errors![super::not_found]);
|
||||
let mut req = MockRequest::new(Method::Get, uri);
|
||||
let mut response = req.dispatch_with(&rocket);
|
||||
|
||||
assert_eq!(response.status(), status);
|
||||
assert_eq!(response.body().and_then(|b| b.into_string()), Some(body));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_hello() {
|
||||
let (name, age) = ("Arthur", 42);
|
||||
let uri = format!("/hello/{}/{}", name, age);
|
||||
test(&uri, Status::Ok, format!("Hello, {} year old named {}!", age, name));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_hello_invalid_age() {
|
||||
for &(name, age) in &[("Ford", -129), ("Trillian", 128)] {
|
||||
let uri = format!("/hello/{}/{}", name, age);
|
||||
let body = format!("<p>Sorry, but '{}' is not a valid path!</p>
|
||||
<p>Try visiting /hello/<name>/<age> instead.</p>",
|
||||
uri);
|
||||
test(&uri, Status::NotFound, body);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue