3 个版本

0.3.4 2019年12月18日
0.3.3 2019年10月10日
0.3.2 2019年10月10日

HTTP服务器中排名第1142

GPL-3.0 许可证

40KB
808 行(不含注释)

Anneal

Anneal 是 Iron 的测试框架。它旨在允许对组件进行独立测试。

示例

use anneal::RequestBuilder;

fn main() {
    RequestBuilder::new(Method::Post, "https://127.0.0.1:8080/")
        .set_body("this is a body".into())
        .request(|mut req| {
			// test code here

            let mut s = String::new();
            req.body.read_to_string(&mut s).unwrap();
            assert_eq!(s, "this is a body");
        })
}

功能

cookies:向请求添加从cookie库中的 CookieJar 方法

json:通过 serde_json 设置请求体为 JSON 对象的方法

jsonapi:向请求体添加 json-api 文档的一对方法


lib.rs:

用于测试 Iron 处理器和中间件的 Crate

此 Crate 生成的请求方式与 iron-test 非常相似,但允许对单个中间件进行独立测试。

示例

#[test]
fn anneal_demo() {
    RequestBuilder::new(Method::Post, "https://127.0.0.1:8080/")
        .set_header(headers::ContentType::json())
        .set_body("this is a body".into())
        .request(|mut req| {
            let mut headers = Headers::new();
            headers.set(headers::ContentLength(14));
            headers.set(headers::UserAgent("anneal".into()));
            headers.set(headers::ContentType::json());
            assert_eq!(req.headers, headers);
            assert_eq!(req.method,  Method::Post);
            assert_eq!(req.url, "https://127.0.0.1:8080/".parse().unwrap());
            assert_eq!(req.local_addr, "127.0.0.1:8080".parse().unwrap());
            assert_eq!(req.remote_addr, "127.0.0.1:3000".parse().unwrap());
            assert_eq!(req.version, HttpVersion::Http11);

            let mut s = String::new();
            req.body.read_to_string(&mut s).unwrap();
            assert_eq!(s, "this is a body");
        })
}

功能

cookies:向请求添加从cookie库中的 CookieJar 方法

json:通过 serde_json 设置请求体为 JSON 对象的方法

jsonapi:向请求体添加 json-api 文档的一对方法

依赖项

~5MB
~121K SLoC