Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/charted-dev/testkit

📦🦋 TestKit is a Rust-based testing framework for HTTP-based services with Testcontainers support
https://github.com/charted-dev/testkit

axum charted rust rustlang testkit

Last synced: 9 days ago
JSON representation

📦🦋 TestKit is a Rust-based testing framework for HTTP-based services with Testcontainers support

Awesome Lists containing this project

README

        

Noel (Trans Heart)

# 📦🦋 charted TestKit
charted **TestKit** is a testing library for [Axum](https://github.com/tokio-rs/axum), which extends [`libtest`] with its own [`test`] macro. The library can also be used for only Testcontainers as well.

**TestKit** was built to make integration testing easier for Axum services with Testcontainers support and additional macros to help build assertions based off [`Response`]s.

## Example
```rust
use charted_testkit::{test, TestContext, assert_successful, consume_body};
use axum::{body::Bytes, routing, Router};
use hyper::Method;

async fn hello() -> &'static str {
"Hello, world!"
}

fn router() -> Router {
Router::new().route("/", routing::get(hello))
}

#[test(router)]
async fn mytest(ctx: TestContext) {
let res = ctx
.request("/", Method::GET, None::, |_| {})
.await
.expect("unable to send request");

assert_successful!(res);

let body = consume_body!(res);
assert_eq!(body, Bytes::from_static(b"Hello, world!"));
}
```

## License
**TestKit** is released under the [`MIT` License](/LICENSE) with love and care by [Noelware, LLC.](https://noelware.org)! 🐻‍❄️🦋

Please read the `LICENSE` file in the [canonical repository](https://github.com/charted-dev/testkit) for more information on what you can do with the source code.

[`Response`]: https://docs.rs/http/latest/http/response/struct.Response.html
[`libtest`]: https://doc.rust-lang.org/stable/test
[`test`]: #