25 个版本 (稳定版)

8.0.0 2024 年 1 月 15 日
6.0.0 2022 年 9 月 6 日
5.14.1 2022 年 9 月 6 日
5.14.0 2020 年 12 月 31 日
0.1.3 2015 年 3 月 7 日

Rust 模式 中排名第 293

Download history 393/week @ 2024-03-15 298/week @ 2024-03-22 307/week @ 2024-03-29 306/week @ 2024-04-05 211/week @ 2024-04-12 240/week @ 2024-04-19 353/week @ 2024-04-26 497/week @ 2024-05-03 365/week @ 2024-05-10 483/week @ 2024-05-17 248/week @ 2024-05-24 257/week @ 2024-05-31 106/week @ 2024-06-07 433/week @ 2024-06-14 210/week @ 2024-06-21 329/week @ 2024-06-28

每月下载量 1,105
用于 25 包(直接使用 23 个)

MIT 许可证

14KB
215

Rust Crates.io

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 的代码,经过调整以在它自己的包中工作。

许可证

根据以下任一许可证授权

贡献

除非您明确说明,否则您提交的任何有意包含在作品中的贡献都将根据上述许可证双授权,无需任何附加条款或条件。

依赖

~5–14MB
~151K SLoC