Skip to main content

测试

每个应用程序都应该经过充分的测试。Actix Web 提供了工具来对你的应用程序进行集成测试,以及用于自定义提取器和中间件的单元测试工具。

Actix Web 提供了一种请求构建器类型。TestRequest 实现了类似构建器的模式。你可以使用 to_http_request() 生成一个 HttpRequest 实例,并使用它调用你的处理程序或提取器。另请参见

应用程序的集成测试

有几种方法可以测试你的应用程序。Actix Web 可以用于在真实的 HTTP 服务器中运行具有特定处理程序的应用程序。

TestRequest::get()TestRequest::post() 和其他方法可以用于向测试服务器发送请求。

要创建一个用于测试的 Service,请使用 test::init_service 方法,该方法接受一个常规的 App 构建器。

查看 API 文档 以获取更多信息。


如果你需要更复杂的应用程序配置,测试应该与创建正常的应用程序非常相似。例如,你可能需要初始化应用程序状态。使用 data 方法创建一个 App 并附加状态,就像你在正常应用程序中一样。


流响应测试

如果你需要测试流生成,只需调用 into_parts() 并将生成的主体转换为一个 future 并执行它,例如在测试 服务器发送事件 时。


提取器的单元测试

单元测试对应用程序的价值相当有限,但在开发提取器、中间件和响应器时可能很有用。鉴于此,如果你想对自定义 Responder 进行断言,可以直接调用独立定义的处理函数,而不使用路由宏(如 #[get("/")])。