完成单元测试

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

@ -1,7 +1,7 @@
Name: {{.serviceName}}
Host: {{.host}}
Port: {{.port}}
DataSource: ""
SourceMysql: ""
Auth:
AccessSecret: fusen2023
AccessExpire: 604800

View File

@ -42,12 +42,12 @@ func (l *UserBasicInfoLogic) UserBasicInfo(req *types.Request, userinfo *auth.Us
return resp.SetStatus(basic.CodeOK, types.DataUserBasicInfo{
Type: *user.Type,
IsOrderStatusEmail: *user.IsOrderStatusEmail > 0,
IsEmailAdvertisement: *user.IsEmailAdvertisement > 0,
IsOrderStatusPhone: *user.IsOrderStatusPhone > 0,
IsPhoneAdvertisement: *user.IsPhoneAdvertisement > 0,
IsOpenRender: *user.IsOpenRender > 0,
IsLowRendering: *user.IsLowRendering > 0,
IsRemoveBg: *user.IsRemoveBg > 0,
IsOrderStatusEmail: *user.IsOrderStatusEmail,
IsEmailAdvertisement: *user.IsEmailAdvertisement,
IsOrderStatusPhone: *user.IsOrderStatusPhone,
IsPhoneAdvertisement: *user.IsPhoneAdvertisement,
IsOpenRender: *user.IsOpenRender,
IsLowRendering: *user.IsLowRendering,
IsRemoveBg: *user.IsRemoveBg,
})
}

View File

@ -31,7 +31,7 @@ func (l *UserFontsLogic) UserFonts(req *types.Request, userinfo *auth.UserInfo)
data, err := gmodel.NewFsFontModel(l.svcCtx.MysqlConn).FindAllOrderSortByDesc(l.ctx)
if err != gorm.ErrRecordNotFound && err != nil {
logx.Error(err)
return resp.SetStatus(basic.CodeOK, data)
return resp.SetStatus(basic.CodeOK)
}
return resp.SetStatus(basic.CodeOK)
return resp.SetStatus(basic.CodeOK, data)
}

View File

@ -9,19 +9,19 @@ type Request struct {
}
type RequestBasicInfoForm struct {
FirstName string `form:"first_name,optional" db:"first_name"` // FirstName
LastName string `form:"last_name,optional" db:"last_name"` // LastName
Company string `form:"company,optional" db:"company"` // 公司名称
Mobile string `form:"mobile,optional" db:"mobile"` // 手机号码
Email string `form:"email" db:"email"` // 邮箱
Type int64 `form:"type,optional" db:"type"` // 1正常 0不正常
IsOrderStatusEmail int64 `form:"is_order_status_email,optional" db:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement int64 `form:"is_email_advertisement,optional" db:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone int64 `form:"is_order_status_phone,optional" db:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement int64 `form:"is_phone_advertisement,optional" db:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender int64 `form:"is_open_render,optional" db:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsLowRendering int64 `form:"is_low_rendering,optional" db:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg int64 `form:"is_remove_bg,optional" db:"is_remove_bg"` // 用户上传logo是否去除背景
FirstName string `json:"first_name"` // FirstName
LastName string `json:"last_name"` // LastName
Company string `json:"company"` // 公司名称
Mobile string `json:"mobile"` // 手机号码
Email string `json:"email"` // 邮箱
Type int64 `json:"type"` // 1正常 0不正常
IsOrderStatusEmail int64 `json:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement int64 `json:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone int64 `json:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement int64 `json:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender int64 `json:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsLowRendering int64 `json:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg int64 `json:"is_remove_bg"` // 用户上传logo是否去除背景
}
type RequestUserLogin struct {
@ -39,19 +39,19 @@ type DataGuest struct {
type DataUserBasicInfo struct {
Type int64 `json:"type"` // 1普通餐厅 2连锁餐厅
IsOrderStatusEmail bool `json:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement bool `json:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone bool `json:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement bool `json:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender bool `json:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsThousandFace bool `json:"is_thousand_face"` // 是否已经存在千人千面1存在0不存在
IsLowRendering bool `json:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg bool `json:"is_remove_bg"` // 用户上传logo是否去除背景
IsOrderStatusEmail int64 `json:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement int64 `json:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone int64 `json:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement int64 `json:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender int64 `json:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsThousandFace int64 `json:"is_thousand_face"` // 是否已经存在千人千面1存在0不存在
IsLowRendering int64 `json:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg int64 `json:"is_remove_bg"` // 用户上传logo是否去除背景
}
type DataGetType struct {
Id int64 `db:"id" json:"key"` // ID
Name string `db:"name" json:"name"` // 餐厅名字
Id int64 `json:"key"` // ID
Name string `json:"name"` // 餐厅名字
}
type KeyName struct {
@ -77,18 +77,18 @@ type DataStatusConfig struct {
}
type DataAddressList struct {
Id int64 `db:"id"`
UserId int64 `db:"user_id"` // 用户ID
Name string `db:"name"` // 地址名称
FirstName string `db:"first_name"` // FirstName
LastName string `db:"last_name"` // LastName
Mobile string `db:"mobile"` // 手机号码
Street string `db:"street"` // 街道
Suite string `db:"suite"` // 房号
City string `db:"city"` // 城市
State string `db:"state"` // 州名
ZipCode string `db:"zip_code"` // 邮编
IsDefault int64 `db:"is_default"` // 1默认地址0非默认地址
Id int64 `json:"id"`
UserId int64 `json:"user_id"` // 用户ID
Name string `json:"name"` // 地址名称
FirstName string `json:"first_name"` // FirstName
LastName string `json:"last_name"` // LastName
Mobile string `json:"mobile"` // 手机号码
Street string `json:"street"` // 街道
Suite string `json:"suite"` // 房号
City string `json:"city"` // 城市
State string `json:"state"` // 州名
ZipCode string `json:"zip_code"` // 邮编
IsDefault int64 `json:"is_default"` // 1默认地址0非默认地址
}
type Response struct {

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")
}
}
}

View File

@ -2,11 +2,12 @@ package config
import (
"fusenapi/server/product/internal/types"
"github.com/zeromicro/go-zero/rest"
)
type Config struct {
rest.RestConf
DataSource string
Auth types.Auth
SourceMysql string
Auth types.Auth
}

View File

@ -41,19 +41,19 @@ service home-user-auth {
}
type RequestBasicInfoForm {
FirstName string `form:"first_name,optional" db:"first_name"` // FirstName
LastName string `form:"last_name,optional" db:"last_name"` // LastName
Company string `form:"company,optional" db:"company"` // 公司名称
Mobile string `form:"mobile,optional" db:"mobile"` // 手机号码
Email string `form:"email" db:"email"` // 邮箱
Type int64 `form:"type,optional" db:"type"` // 1正常 0不正常
IsOrderStatusEmail int64 `form:"is_order_status_email,optional" db:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement int64 `form:"is_email_advertisement,optional" db:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone int64 `form:"is_order_status_phone,optional" db:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement int64 `form:"is_phone_advertisement,optional" db:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender int64 `form:"is_open_render,optional" db:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsLowRendering int64 `form:"is_low_rendering,optional" db:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg int64 `form:"is_remove_bg,optional" db:"is_remove_bg"` // 用户上传logo是否去除背景
FirstName string `json:"first_name"` // FirstName
LastName string `json:"last_name"` // LastName
Company string `json:"company"` // 公司名称
Mobile string `json:"mobile"` // 手机号码
Email string `json:"email"` // 邮箱
Type int64 `json:"type"` // 1正常 0不正常
IsOrderStatusEmail int64 `json:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement int64 `json:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone int64 `json:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement int64 `json:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender int64 `json:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsLowRendering int64 `json:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg int64 `json:"is_remove_bg"` // 用户上传logo是否去除背景
// NewPassword string `form:"new_password,optional" db:"new_password"` // new_password 如果存在新密码
}
@ -77,20 +77,20 @@ type DataGuest {
// UserBasicInfoHandler 返回data结构
type DataUserBasicInfo {
Type int64 `json:"type"` // 1普通餐厅 2连锁餐厅
IsOrderStatusEmail bool `json:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement bool `json:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone bool `json:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement bool `json:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender bool `json:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsThousandFace bool `json:"is_thousand_face"` // 是否已经存在千人千面1存在0不存在
IsLowRendering bool `json:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg bool `json:"is_remove_bg"` // 用户上传logo是否去除背景
IsOrderStatusEmail int64 `json:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement int64 `json:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone int64 `json:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement int64 `json:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender int64 `json:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsThousandFace int64 `json:"is_thousand_face"` // 是否已经存在千人千面1存在0不存在
IsLowRendering int64 `json:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg int64 `json:"is_remove_bg"` // 用户上传logo是否去除背景
}
// /user/get-type reponse.data 结构
type DataGetType {
Id int64 `db:"id" json:"key"` // ID
Name string `db:"name" json:"name"` // 餐厅名字
Id int64 `json:"key"` // ID
Name string `json:"name"` // 餐厅名字
}
// KeyName 普通的key name 对象结构. eg: /user/status-config 用在返回值
@ -120,18 +120,18 @@ type DataStatusConfig {
// DataAddressList /user/address-list 返回值
type DataAddressList {
Id int64 `db:"id"`
UserId int64 `db:"user_id"` // 用户ID
Name string `db:"name"` // 地址名称
FirstName string `db:"first_name"` // FirstName
LastName string `db:"last_name"` // LastName
Mobile string `db:"mobile"` // 手机号码
Street string `db:"street"` // 街道
Suite string `db:"suite"` // 房号
City string `db:"city"` // 城市
State string `db:"state"` // 州名
// Country string `db:"country"` // 国家
ZipCode string `db:"zip_code"` // 邮编
// Status int64 `db:"status"` // 1正常 0异常
IsDefault int64 `db:"is_default"` // 1默认地址0非默认地址
Id int64 `json:"id"`
UserId int64 `json:"user_id"` // 用户ID
Name string `json:"name"` // 地址名称
FirstName string `json:"first_name"` // FirstName
LastName string `json:"last_name"` // LastName
Mobile string `json:"mobile"` // 手机号码
Street string `json:"street"` // 街道
Suite string `json:"suite"` // 房号
City string `json:"city"` // 城市
State string `json:"state"` // 州名
// Country string `json:"country"` // 国家
ZipCode string `json:"zip_code"` // 邮编
// Status int64 `json:"status"` // 1正常 0异常
IsDefault int64 `json:"is_default"` // 1默认地址0非默认地址
}