Crate trillium_testing
source ·Expand description
testing utilities for trillium applications.
this crate is intended to be used as a development dependency.
use trillium_testing::prelude::*;
use trillium::{Conn, conn_try};
async fn handler(mut conn: Conn) -> Conn {
let request_body = conn_try!(conn.request_body_string().await, conn);
conn.with_body(format!("request body was: {}", request_body))
.with_status(418)
.with_header("request-id", "special-request")
}
assert_response!(
post("/").with_request_body("hello trillium!").on(&handler),
Status::ImATeapot,
"request body was: hello trillium!",
"request-id" => "special-request",
"content-length" => "33"
);
Features
You must enable a runtime feature for trillium testing
Tokio:
[dev-dependencies]
# ...
trillium-testing = { version = "0.2", features = ["tokio"] }
Async-std:
[dev-dependencies]
# ...
trillium-testing = { version = "0.2", features = ["async-std"] }
Smol:
[dev-dependencies]
# ...
trillium-testing = { version = "0.2", features = ["smol"] }
Re-exports
pub use futures_lite;
Modules
TestConn
builders for http methods- useful stuff for testing trillium apps
Macros
- assert that the response body is as specified. this assertion requires mutation of the conn.
- asserts that the response body matches the specified pattern, using
str::contains
- asserts any number of response headers
- assert that all of the following are true:
- assert_ok is like
assert_response!
except it always asserts a status of 200 Ok. - combines several other assertions. this assertion can be used to assert:
- assert that the status code of a conn is as specified.
Structs
- configuration for the tcp Connector
- An in-memory Connector to use with GenericServer.
- A [
Server
] for testing that does not depend on any runtime - a bridge between trillium servers and clients
- A droppable future
- A wrapper around a
trillium::Conn
for testing - a readable and writable transport for testing
- A parsed URL record.
Enums
- HTTP request methods.
- HTTP response status codes.
Traits
- Read bytes asynchronously.
- Extension trait for
AsyncRead
. - Write bytes asynchronously.
Functions
- Runs the global and the local executor on the current thread
- runtime client config
- runtime server config
- build a connector from this handler
- a test harness for use with [
test_harness
] - initialize a handler
- smol-based spawn variant that finishes whether or not the returned future is dropped
- Starts a trillium handler bound to a random available port on localhost, run the async tests provided as the second argument, and then shut down the server. useful for full integration tests that actually exercise the tcp layer.
- open an in-memory connection to this handler and call an async function with an open BoxedTransport
Type Aliases
- a sponge Result