2个不稳定版本
0.2.0 | 2023年1月15日 |
---|---|
0.1.0 | 2022年12月19日 |
在 HTTP服务器 中排名 732
25KB
461 行
mini-http-test
小型库,提供了简单的Hyper服务器包装,用于编写HTTP测试服务器。灵感来源于Go的httptest包。
目前仅支持HTTP/1.1,不支持TLS。仅支持Tokio异步运行时。
示例
use std::sync::{Arc, Mutex};
use mini_http_test::{
handle_ok,
hyper::{body, Request, Response},
Server,
};
let val = Arc::new(Mutex::new(1234));
let server = {
let val = val.clone();
Server::new(move |_: Request<body::Incoming>| async move {
let mut val = val.lock().expect("lock poisoned");
*val += 1;
handle_ok(Response::new(val.to_string().into()))
})
.await
.expect("create server")
};
let res = reqwest::Client::new()
.get(server.url("/").to_string())
.send()
.await
.expect("send request");
assert_eq!(res.status(), 200);
assert_eq!(*val.lock().expect("lock poisoned"), 1235);
assert_eq!(res.text().await.expect("read response"), "1235");
assert_eq!(server.req_count(), 1);
许可证
遵循MIT许可证。有关更多详细信息,请参阅LICENSE。
依赖项
~5–12MB
~118K SLoC