You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
simpleRequest/simpleRequest_test.go

106 lines
2.2 KiB
Go

// Package simpleRequest -----------------------------
2 years ago
// file : simpleRequest_test.go
// author : JJXu
// contact : wavingBear@163.com
// time : 2022/12/9 20:34:52
// -------------------------------------------
package simpleRequest
import (
"encoding/json"
"fmt"
"io"
"net/http"
"testing"
)
type api struct {
Name string `json:"name" form:"name" query:"name"`
}
func httpserver() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "POST":
var data api
jsonDecoder := json.NewDecoder(r.Body)
jsonDecoder.Decode(&data)
if data.Name == "JJXu" {
io.WriteString(w, "ok")
} else {
io.WriteString(w, "false")
}
default:
io.WriteString(w, "false")
}
})
fmt.Println("http服务启动了")
http.ListenAndServe(":8989", nil)
}
func TestPost_withSet(t *testing.T) {
go httpserver()
var r = NewRequest()
r.Headers().ConentType_json()
r.Body().Set("name", "JJXu")
result, err := r.POST("http://localhost:8989/")
if err != nil {
t.Error(err.Error())
} else {
t.Log(string(result))
}
}
func TestPost_withSets(t *testing.T) {
go httpserver()
var r = NewRequest()
r.Headers().ConentType_json()
r.Body().Sets(map[string]any{
"name": "JJXu",
})
result, err := r.POST("http://localhost:8989/")
if err != nil {
t.Error(err.Error())
} else {
t.Log(string(result))
}
}
2 years ago
func TestPost_withSetModel(t *testing.T) {
go httpserver()
var r = NewRequest()
r.Headers().ConentType_json()
var entry = api{
Name: "JJXu",
}
r.Body().SetModel(&entry)
result, err := r.POST("http://localhost:8989/")
if err != nil {
t.Error(err.Error())
} else {
t.Log(string(result))
}
}
1 year ago
// url中的query param字符串参数会被r.QueryParams()中的key值覆盖
func TestQueryUrl2(t *testing.T) {
go httpserver()
var r = NewRequest()
r.Headers().ConentType_formUrlencoded()
r.QueryParams().Set("a", "123")
r.QueryParams().Set("b", "456")
_, err := r.POST("http://localhost:8989?a=1&b=2&c=3")
if err != nil {
t.Error(err.Error())
} else {
if r.Request.URL.RawQuery != "a=123&b=456&c=3" {
t.Errorf("query params wangt '%s' but get '%s'", "a=123&b=456&c=3", r.Request.URL.RawQuery)
}
}
}