完成单元测试

This commit is contained in:
eson
2023-06-19 15:52:14 +08:00
parent 19d325fb77
commit 4e8d0f3ceb
9 changed files with 259 additions and 92 deletions

View File

@@ -9,6 +9,7 @@ import (
)
func TestCaseUserFontsLogic(t *testing.T) {
var err error
var resp *requests.Response
var result gjson.Result
@@ -44,16 +45,23 @@ func TestCaseUserFontsLogic(t *testing.T) {
}
// 遍历每个元素,检查其 key 和 name 字段是否存在,并且值是否符合预期
for i, item := range dataArray {
key := item.Get("key").Int()
name := item.Get("name").String()
for _, item := range dataArray {
// log.Println(item)
if key != int64(i+1) {
t.Errorf("Unexpected key value at index %d: %d", i, key)
if !item.Get("id").Exists() {
t.Error("id is not exists")
}
if len(name) == 0 {
t.Errorf("Missing name value at index %d", i)
if !item.Get("title").Exists() {
t.Error("title is not exists")
}
if !item.Get("linux_fontname").Exists() {
t.Error("linux_fontname is not exists")
}
if !item.Get("file_path").Exists() {
t.Error("file_path is not exists")
}
if !item.Get("sort").Exists() {
t.Error("sort is not exists")
}
}
}

View File

@@ -0,0 +1,103 @@
package logic
import (
"encoding/json"
"fmt"
"fusenapi/server/home-user-auth/internal/types"
"testing"
"github.com/474420502/requests"
"github.com/tidwall/gjson"
)
func TestCaseUserSaveBasicinfoLogic(t *testing.T) {
var err error
var resp *requests.Response
var result gjson.Result
// 获取 session并携带 JWT token
ses := GetSesssionWithUserToken(t, gserver)
var tp *requests.Temporary
tp = ses.Get(fmt.Sprintf("http://%s:%d/user/basic-info", cnf.Host, cnf.Port))
resp, err = tp.TestInServer(gserver)
if err != nil {
t.Error(err)
return
}
req := types.RequestBasicInfoForm{}
// log.Println(resp.Json().Get("data"))
err = json.Unmarshal([]byte(resp.Json().Get("data").String()), &req)
if err != nil {
t.Error(err)
return
}
IsOrderStatusEmail := req.IsOrderStatusEmail
IsEmailAdvertisement := req.IsEmailAdvertisement
IsOrderStatusPhone := req.IsOrderStatusPhone
IsOpenRender := req.IsOpenRender
IsLowRendering := req.IsLowRendering
IsRemoveBg := req.IsRemoveBg
req.IsOrderStatusEmail = ^req.IsOrderStatusEmail + 2
req.IsEmailAdvertisement = ^req.IsEmailAdvertisement + 2
req.IsOrderStatusPhone = ^req.IsOrderStatusPhone + 2
req.IsOpenRender = ^req.IsOpenRender + 2
req.IsLowRendering = ^req.IsLowRendering + 2
req.IsRemoveBg = ^req.IsRemoveBg + 2
// 向服务器发送 GET 请求,获取用户类型信息
tp = ses.Post(fmt.Sprintf("http://%s:%d/user/basic-info", cnf.Host, cnf.Port)).SetBodyJson(req)
resp, err = tp.TestInServer(gserver)
if err != nil {
t.Error(err)
return
}
// 使用 gjson 解析返回的 json 数据
result = gjson.Parse(resp.ContentString())
// log.Println(resp.ContentString())
// 检查返回值中的 code 字段是否存在,并且值是否为 200
code := result.Get("code").Int()
if code != 200 {
t.Errorf("Invalid code value: %d", code)
return
}
tp = ses.Get(fmt.Sprintf("http://%s:%d/user/basic-info", cnf.Host, cnf.Port))
resp, err = tp.TestInServer(gserver)
if err != nil {
t.Error(err)
return
}
// log.Println(resp.ContentString())
err = json.Unmarshal([]byte(resp.Json().Get("data").String()), &req)
if err != nil {
t.Error(err)
return
}
if req.IsOrderStatusEmail != ^IsOrderStatusEmail+2 {
t.Error("IsOrderStatusEmail is error, check this code")
}
if req.IsEmailAdvertisement != ^IsEmailAdvertisement+2 {
t.Error("IsEmailAdvertisement is error, check this code")
}
if req.IsOrderStatusPhone != ^IsOrderStatusPhone+2 {
t.Error("IsOrderStatusPhone is error, check this code")
}
if req.IsOpenRender != ^IsOpenRender+2 {
t.Error("IsOpenRender is error, check this code")
}
if req.IsLowRendering != ^IsLowRendering+2 {
t.Error("IsLowRendering is error, check this code")
}
if req.IsRemoveBg != ^IsRemoveBg+2 {
t.Error("IsRemoveBg is error, check this code")
}
}

View File

@@ -0,0 +1,55 @@
package logic
import (
"fmt"
"testing"
"github.com/474420502/requests"
"github.com/tidwall/gjson"
)
func TestCaseUserStatusConfigLogic(t *testing.T) {
var err error
var resp *requests.Response
var result gjson.Result
// 获取 session并携带 JWT token
ses := GetSesssionWithUserToken(t, gserver)
// 向服务器发送 GET 请求,获取用户类型信息
resp, err = ses.Post(fmt.Sprintf("http://%s:%d/user/status-config", cnf.Host, cnf.Port)).TestInServer(gserver)
if err != nil {
t.Error(err)
}
// 使用 gjson 解析返回的 json 数据
result = gjson.Parse(resp.ContentString())
// 检查返回值中的 code 字段是否存在,并且值是否为 200
// 检查返回值中的 msg 字段是否存在,并且值是否为 "success"
msg := result.Get("msg").String()
if msg != "success" {
t.Errorf(`Invalid msg value: "%s"`, msg)
}
// 检查返回值中的 data 字段是否存在,并且值是否为数组类型
dataArray := result.Get("data.search_list").Array()
if len(dataArray) == 0 {
t.Error("Empty data field")
}
// 遍历每个元素,检查其 key 和 name 字段是否存在,并且值是否符合预期
for _, item := range dataArray {
key := item.Get("key")
name := item.Get("name")
if !key.Exists() {
t.Errorf("key is not exists")
}
if !name.Exists() {
t.Errorf("name is not exists")
}
}
}