25 个版本 (稳定版)
8.0.0 | 2024 年 1 月 15 日 |
---|---|
6.0.0 | 2022 年 9 月 6 日 |
5.14.1 |
|
5.14.0 | 2020 年 12 月 31 日 |
0.1.3 | 2015 年 3 月 7 日 |
在 Rust 模式 中排名第 293
每月下载量 1,105
用于 25 个 包(直接使用 23 个)
14KB
215 行
hyper-mock
是一个工具库,用于帮助 hyper 客户端进行测试。它提供了用于测试 hyper 本身的类型,最显著的是模拟连接和宏以简化使用。
用法
在 Cargo.toml
中设置以在测试中使用
[dev-dependencies]
yup-hyper-mock = "*"
log = "*" # log macros are used within yup-hyper-mock
在您的测试模块中
#[cfg(test)]
mod tests {
use hyper;
use hyper_util::client::legacy::Client;
yup_hyper_mock::mock_connector!(MockRedirectPolicy {
"http://127.0.0.1" => "HTTP/1.1 301 Redirect\r\n\
Location: http://127.0.0.2\r\n\
Server: mock1\r\n\
\r\n\
"
"http://127.0.0.2" => "HTTP/1.1 302 Found\r\n\
Location: https://127.0.0.3\r\n\
Server: mock2\r\n\
\r\n\
"
"https://127.0.0.3" => "HTTP/1.1 200 OK\r\n\
Server: mock3\r\n\
\r\n\
"
});
#[tokio::test]
async fn test_redirect_followall() {
let builder =
hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new());
let client: Client<MockRedirectPolicy, http_body_util::Empty<hyper::body::Bytes>> =
builder.build(MockRedirectPolicy::default());
let res = client
.get(hyper::Uri::from_static("http://127.0.0.1"))
.await
.unwrap();
let headers = res.headers();
assert!(headers.contains_key("Server"));
assert_eq!(headers["Server"], "mock1");
}
}
致谢
yup-hyper-mock
是来自 hyper/src/mock.rs
的代码,经过调整以在它自己的包中工作。
许可证
根据以下任一许可证授权
- Apache 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),任选其一。
贡献
除非您明确说明,否则您提交的任何有意包含在作品中的贡献都将根据上述许可证双授权,无需任何附加条款或条件。
依赖
~5–14MB
~151K SLoC