pub struct TestRequest<St = ()> { /* private fields */ }Expand description
Test Request builder.
For unit testing, ntex provides a request builder type and a simple handler runner. TestRequest implements a builder-like pattern.
You can generate various types of request via TestRequest’s methods:
TestRequest::to_requestcreatesntex::http::Requestinstance.TestRequest::to_srv_requestcreatesWebRequestinstance, which is used for testing middlewares and chain adapters.TestRequest::to_srv_responsecreatesWebResponseinstance.TestRequest::to_http_requestcreatesHttpRequestinstance, which is used for testing handlers.
use ntex::http::{header, StatusCode, HttpMessage};
use ntex::web::{self, test, HttpRequest, HttpResponse};
async fn index(req: HttpRequest) -> HttpResponse {
if req.headers().contains_key(header::CONTENT_TYPE) {
HttpResponse::Ok().into()
} else {
HttpResponse::BadRequest().into()
}
}
#[ntex::test]
async fn test_index() {
let req = test::TestRequest::with_header("content-type", "text/plain")
.to_http_request();
let resp = index(req).await;
assert_eq!(resp.status(), StatusCode::OK);
let req = test::TestRequest::default().to_http_request();
let resp = index(req).await;
assert_eq!(resp.status(), StatusCode::BAD_REQUEST);
}Implementations§
Source§impl TestRequest
impl TestRequest
Sourcepub fn with_uri(path: &str) -> TestRequest
pub fn with_uri(path: &str) -> TestRequest
Create TestRequest and set request uri.
Sourcepub fn with_header<K, V>(key: K, value: V) -> TestRequestwhere
HeaderName: TryFrom<K>,
HeaderValue: TryFrom<V>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
pub fn with_header<K, V>(key: K, value: V) -> TestRequestwhere
HeaderName: TryFrom<K>,
HeaderValue: TryFrom<V>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
Create TestRequest and set header.
Sourcepub fn get() -> TestRequest
pub fn get() -> TestRequest
Create TestRequest and set method to Method::GET.
Sourcepub fn post() -> TestRequest
pub fn post() -> TestRequest
Create TestRequest and set method to Method::POST.
Sourcepub fn put() -> TestRequest
pub fn put() -> TestRequest
Create TestRequest and set method to Method::PUT.
Sourcepub fn patch() -> TestRequest
pub fn patch() -> TestRequest
Create TestRequest and set method to Method::PATCH.
Sourcepub fn delete() -> TestRequest
pub fn delete() -> TestRequest
Create TestRequest and set method to Method::DELETE.
Source§impl<St> TestRequest<St>
impl<St> TestRequest<St>
Sourcepub fn header<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
HeaderValue: TryFrom<V>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
pub fn header<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
HeaderValue: TryFrom<V>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
Set a header.
Set cookie for this request.
Sourcepub fn param(self, name: &'static str, value: &'static str) -> Self
pub fn param(self, name: &'static str, value: &'static str) -> Self
Set request path pattern parameter.
Sourcepub fn peer_addr(self, addr: SocketAddr) -> Self
pub fn peer_addr(self, addr: SocketAddr) -> Self
Set peer addr.
The address is returned by peer_addr() of the generated request.
Requests with a peer address must be created inside the ntex runtime.
Sourcepub fn form<T: Serialize>(self, data: &T) -> Self
pub fn form<T: Serialize>(self, data: &T) -> Self
Serialize data to a URL encoded form and set it as the request payload.
The Content-Type header is set to application/x-www-form-urlencoded.
Sourcepub fn json<T: Serialize>(self, data: &T) -> Self
pub fn json<T: Serialize>(self, data: &T) -> Self
Serialize data to JSON and set it as the request payload.
The Content-Type header is set to application/json.
Sourcepub fn state<NewSt: 'static>(self, state: NewSt) -> TestRequest<NewSt>
pub fn state<NewSt: 'static>(self, state: NewSt) -> TestRequest<NewSt>
Set request state.
Sourcepub fn app_state<T: Send + Sync + 'static>(self, data: T) -> Self
pub fn app_state<T: Send + Sync + 'static>(self, data: T) -> Self
Set application state.
This is equivalent of WebAppConfig::set_state() method for testing
purpose. The value is available via HttpRequest::app_state().
Sourcepub fn to_request(self) -> Request
pub fn to_request(self) -> Request
Complete request creation and generate Request instance.
Sourcepub fn to_srv_request(self) -> WebRequest<St>
pub fn to_srv_request(self) -> WebRequest<St>
Complete request creation and generate WebRequest instance.
Sourcepub fn to_srv_response(self, res: HttpResponse) -> WebResponse
pub fn to_srv_response(self, res: HttpResponse) -> WebResponse
Complete request creation and generate WebResponse instance.
Sourcepub fn to_http_request(self) -> HttpRequest
pub fn to_http_request(self) -> HttpRequest
Complete request creation and generate HttpRequest instance.
Sourcepub fn to_http_parts(self) -> (HttpRequest, Payload, St)
pub fn to_http_parts(self) -> (HttpRequest, Payload, St)
Complete request creation and generate HttpRequest and Payload instances.