mirror of https://github.com/fafhrd91/actix-web
				
				
				
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # `actix-test`
 | |
| 
 | |
| <!-- prettier-ignore-start -->
 | |
| 
 | |
| [](https://crates.io/crates/actix-test)
 | |
| [](https://docs.rs/actix-test/0.1.5)
 | |
| 
 | |
| 
 | |
| <br />
 | |
| [](https://deps.rs/crate/actix-test/0.1.5)
 | |
| [](https://crates.io/crates/actix-test)
 | |
| [](https://discord.gg/NWpN5mmg3x)
 | |
| 
 | |
| <!-- prettier-ignore-end -->
 | |
| 
 | |
| <!-- cargo-rdme start -->
 | |
| 
 | |
| Integration testing tools for Actix Web applications.
 | |
| 
 | |
| The main integration testing tool is [`TestServer`]. It spawns a real HTTP server on an unused port and provides methods that use a real HTTP client. Therefore, it is much closer to real-world cases than using `init_service`, which skips HTTP encoding and decoding.
 | |
| 
 | |
| ## Examples
 | |
| 
 | |
| ```rust
 | |
| use actix_web::{get, web, test, App, HttpResponse, Error, Responder};
 | |
| 
 | |
| #[get("/")]
 | |
| async fn my_handler() -> Result<impl Responder, Error> {
 | |
|     Ok(HttpResponse::Ok())
 | |
| }
 | |
| 
 | |
| #[actix_rt::test]
 | |
| async fn test_example() {
 | |
|     let srv = actix_test::start(||
 | |
|         App::new().service(my_handler)
 | |
|     );
 | |
| 
 | |
|     let req = srv.get("/");
 | |
|     let res = req.send().await.unwrap();
 | |
| 
 | |
|     assert!(res.status().is_success());
 | |
| }
 | |
| ```
 | |
| 
 | |
| <!-- cargo-rdme end -->
 |