/
base2.go
137 lines (126 loc) · 3.46 KB
/
base2.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package tests
import (
"bytes"
"encoding/json"
"fmt"
"github.com/AbnerEarl/goutils/gins"
"io"
"mime/multipart"
"net/http/httptest"
"os"
"path/filepath"
)
type BaseGins struct {
token string
router *gins.Server
}
func (b *BaseGins) Get(uri string, param map[string]string) *httptest.ResponseRecorder {
if param != nil {
uri = uri + MapToStr(param)
}
// 构造请求
req := httptest.NewRequest("GET", uri, nil)
req.Header.Set("token", b.token)
// 初始化响应
res := httptest.NewRecorder()
// 调用相应的handler接口
b.router.ServeHTTP(res, req)
return res
}
func (b *BaseGins) Delete(uri string, param map[string]string) *httptest.ResponseRecorder {
if param != nil {
uri = uri + MapToStr(param)
}
// 构造请求
req := httptest.NewRequest("DELETE", uri, nil)
req.Header.Set("token", b.token)
// 初始化响应
res := httptest.NewRecorder()
// 调用相应的handler接口
b.router.ServeHTTP(res, req)
return res
}
func (b *BaseGins) PostForm(uri string, param map[string]string) *httptest.ResponseRecorder {
if param != nil {
uri = uri + MapToStr(param)
}
req := httptest.NewRequest("POST", uri, nil)
req.Header.Set("token", b.token)
// 初始化响应
res := httptest.NewRecorder()
// 调用相应handler接口
b.router.ServeHTTP(res, req)
return res
}
func (b *BaseGins) PostJson(uri string, param map[string]interface{}) *httptest.ResponseRecorder {
// 将参数转化为json比特流
jsonByte, _ := json.Marshal(param)
// 构造请求,json数据以请求body的形式传递
req := httptest.NewRequest("POST", uri, bytes.NewReader(jsonByte))
req.Header.Set("token", b.token)
// 初始化响应
res := httptest.NewRecorder()
// 调用相应的handler接口
b.router.ServeHTTP(res, req)
return res
}
func (b *BaseGins) PostFile(uri string, param map[string]interface{}, files map[string]string) *httptest.ResponseRecorder {
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
//defer writer.Close()
for k, v := range files {
file, err := os.Open(v)
defer file.Close()
if err != nil {
fmt.Println(err)
return nil
}
part, err := writer.CreateFormFile(k, filepath.Base(v))
if err != nil {
fmt.Println(err)
return nil
}
io.Copy(part, file)
}
for k, v := range param {
err := writer.WriteField(k, fmt.Sprint(v))
if err != nil {
fmt.Println(err)
return nil
}
}
writer.Close()
// 构造请求,json数据以请求body的形式传递
req := httptest.NewRequest("POST", uri, body)
req.Header.Set("token", b.token)
req.Header.Set("Content-Type", writer.FormDataContentType())
// 初始化响应
res := httptest.NewRecorder()
// 调用相应的handler接口
b.router.ServeHTTP(res, req)
return res
}
func (b *BaseGins) PutForm(uri string, param map[string]string) *httptest.ResponseRecorder {
if param != nil {
uri = uri + MapToStr(param)
}
req := httptest.NewRequest("PUT", uri, nil)
req.Header.Set("token", b.token)
// 初始化响应
res := httptest.NewRecorder()
// 调用相应handler接口
b.router.ServeHTTP(res, req)
return res
}
func (b *BaseGins) PutJson(uri string, param map[string]interface{}) *httptest.ResponseRecorder {
// 将参数转化为json比特流
jsonByte, _ := json.Marshal(param)
// 构造请求,json数据以请求body的形式传递
req := httptest.NewRequest("PUT", uri, bytes.NewReader(jsonByte))
req.Header.Set("token", b.token)
// 初始化响应
res := httptest.NewRecorder()
// 调用相应的handler接口
b.router.ServeHTTP(res, req)
return res
}