#http #tokio #http-server #http-request #testing #port #tokiotest

tokiotest-httpserver

一个简单的http服务器,用于单元/集成测试

3个不稳定版本

0.2.1 2022年3月16日
0.2.0 2022年3月12日
0.1.0 2022年3月3日

#295 in #http-server

31每月下载量
用于 2 crates

MIT许可

12KB
206

tokiotest-httpserver CircleCI

一个小型测试服务器实用程序,用于运行http请求。

并行使用

测试上下文在12300到12400之间创建一个新的服务器。测试将使用此端口

use test_context::{AsyncTestContext, test_context};
use hyper::{Uri, StatusCode, Client};
use tokiotest_httpserver::handler::{HandlerBuilder};
use tokiotest_httpserver::HttpTestContext;

#[test_context(HttpTestContext)]
#[tokio::test]
async fn test_get_respond_200(ctx: &mut HttpTestContext) {
    ctx.add(HandlerBuilder::new("/ok").status_code(StatusCode::OK).build());

    let resp = Client::new().get(ctx.uri("/ok")).await.unwrap();

    assert_eq!(200, resp.status());
}

测试结束时,端口将释放并可用于另一个测试。

顺序使用

也可以用它与顺序工作流程一起使用。只需包含serial_test crate,并添加注解。

在顺序工作流程中,您可以选择为http测试服务器设置固定端口,只需将环境变量TOKIOTEST_HTTP_PORT设置为所需的端口。

例如,请参阅test_serial

依赖关系

~6–13MB
~156K SLoC