Added simple testing documentation and examples (#1156)
This commit is contained in:
		
							
								
								
									
										46
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								README.md
									
									
									
									
									
								
							@ -1344,6 +1344,52 @@ func main() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Testing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `net/http/httptest` package is preferable way for HTTP testing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func setupRouter() *gin.Engine {
 | 
				
			||||||
 | 
						r := gin.Default()
 | 
				
			||||||
 | 
						r.GET("/ping", func(c *gin.Context) {
 | 
				
			||||||
 | 
							c.String(200, "pong")
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						return r
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
						r := setupRouter()
 | 
				
			||||||
 | 
						r.Run(":8080")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Test for code example above:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"net/http"
 | 
				
			||||||
 | 
						"net/http/httptest"
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestPingRoute(t *testing.T) {
 | 
				
			||||||
 | 
						router := setupRouter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						w := httptest.NewRecorder()
 | 
				
			||||||
 | 
						req, _ := http.NewRequest("GET", "/ping", nil)
 | 
				
			||||||
 | 
						router.ServeHTTP(w, req)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						assert.Equal(t, 200, w.Code)
 | 
				
			||||||
 | 
						assert.Equal(t, "pong", w.Body.String())
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Users  [](https://sourcegraph.com/github.com/gin-gonic/gin?badge)
 | 
					## Users  [](https://sourcegraph.com/github.com/gin-gonic/gin?badge)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Awesome project lists using [Gin](https://github.com/gin-gonic/gin) web framework.
 | 
					Awesome project lists using [Gin](https://github.com/gin-gonic/gin) web framework.
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
var DB = make(map[string]string)
 | 
					var DB = make(map[string]string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func setupRouter() *gin.Engine {
 | 
				
			||||||
	// Disable Console Color
 | 
						// Disable Console Color
 | 
				
			||||||
	// gin.DisableConsoleColor()
 | 
						// gin.DisableConsoleColor()
 | 
				
			||||||
	r := gin.Default()
 | 
						r := gin.Default()
 | 
				
			||||||
@ -53,6 +53,11 @@ func main() {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return r
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
						r := setupRouter()
 | 
				
			||||||
	// Listen and Server in 0.0.0.0:8080
 | 
						// Listen and Server in 0.0.0.0:8080
 | 
				
			||||||
	r.Run(":8080")
 | 
						r.Run(":8080")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								examples/basic/main_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								examples/basic/main_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"net/http"
 | 
				
			||||||
 | 
						"net/http/httptest"
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestPingRoute(t *testing.T) {
 | 
				
			||||||
 | 
						router := setupRouter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						w := httptest.NewRecorder()
 | 
				
			||||||
 | 
						req, _ := http.NewRequest("GET", "/ping", nil)
 | 
				
			||||||
 | 
						router.ServeHTTP(w, req)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						assert.Equal(t, 200, w.Code)
 | 
				
			||||||
 | 
						assert.Equal(t, "pong", w.Body.String())
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user