Rocket - Hello World with separate test file
- Create a new crate, add rocket as a dependency cargo add rocket
examples/rocket/hello-world-external-test-file/Cargo.toml
[package] name = "first" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] rocket = "0.5.0"
examples/rocket/hello-world-external-test-file/src/main.rs
#[macro_use] extern crate rocket; #[get("/")] fn index() -> &'static str { "Hello, world!" } #[launch] fn rocket() -> _ { rocket::build().mount("/", routes![index]) } #[cfg(test)] mod tests;
cargo run
The tests
examples/rocket/hello-world-external-test-file/src/tests.rs
use rocket::http::Status; use rocket::local::blocking::Client; #[test] fn hello_world() { let client = Client::tracked(super::rocket()).unwrap(); let response = client.get("/").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!( response.headers().get_one("Content-Type").unwrap(), "text/plain; charset=utf-8" ); assert_eq!(response.into_string(), Some("Hello, world!".into())); }
cargo test
curl -i http://localhost:8000/