mirror of
https://github.com/SourceFellows/gobuch.git
synced 2024-10-22 13:57:13 +00:00
41 lines
1000 B
Go
41 lines
1000 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"net/http"
|
||
|
"net/http/httptest"
|
||
|
"strings"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func Test_myHandler(t *testing.T) {
|
||
|
type args struct {
|
||
|
url string
|
||
|
expectedName string
|
||
|
status int
|
||
|
}
|
||
|
tests := []struct {
|
||
|
name string
|
||
|
args args
|
||
|
}{
|
||
|
{"t1", args{"/json/test", "test", http.StatusOK}},
|
||
|
{"t2", args{"/x/y", "", http.StatusNotImplemented}},
|
||
|
}
|
||
|
for _, tt := range tests {
|
||
|
t.Run(tt.name, func(t *testing.T) {
|
||
|
url := tt.args.url
|
||
|
req, err := http.NewRequest(http.MethodGet, url, nil)
|
||
|
if err != nil {
|
||
|
t.Errorf("could't create request: %v", tt.args.url)
|
||
|
}
|
||
|
recorder := httptest.NewRecorder()
|
||
|
myHandler(recorder, req)
|
||
|
if recorder.Result().StatusCode != tt.args.status {
|
||
|
t.Errorf("Wrong status code %v, expected %v", recorder.Result().StatusCode, tt.args.status)
|
||
|
}
|
||
|
if !strings.Contains(recorder.Body.String(), tt.args.expectedName) {
|
||
|
t.Errorf("The response does't contain '%v': '%v'", tt.args.expectedName, recorder.Body.String())
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|