Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
李宇怀
Backend
Commits
9df34dc7
Commit
9df34dc7
authored
Sep 07, 2023
by
李宇怀
Browse files
完成link的测试
parent
e674b465
Changes
4
Hide whitespace changes
Inline
Side-by-side
internal/controller/link.go
View file @
9df34dc7
...
...
@@ -58,7 +58,7 @@ func (c *LinkController) Create(ctx *gin.Context, req *dto.LinkCreateReq) (*dto.
}
var
link
model
.
Link
err
:=
dao
.
DB
(
ctx
)
.
Where
(
&
model
.
Link
{
Short
:
newLink
.
Short
})
.
First
(
&
link
)
.
Error
err
:=
dao
.
DB
(
ctx
)
.
Table
(
"Links"
)
.
Where
(
&
model
.
Link
{
Short
:
newLink
.
Short
})
.
First
(
&
link
)
.
Error
if
err
!=
nil
{
// 没找到相关记录 说明不是短连接重复
if
err
==
gorm
.
ErrRecordNotFound
{
...
...
@@ -92,7 +92,7 @@ func (c *LinkController) Delete(ctx *gin.Context, req *dto.LinkDeleteReq) error
deleteLink
:=
&
model
.
Link
{
Short
:
req
.
Short
,
}
err
:=
dao
.
DB
(
ctx
)
.
Where
(
&
model
.
Link
{
Short
:
deleteLink
.
Short
})
.
Delete
(
deleteLink
)
.
Error
err
:=
dao
.
DB
(
ctx
)
.
Table
(
"Links"
)
.
Where
(
&
model
.
Link
{
Short
:
deleteLink
.
Short
})
.
Delete
(
deleteLink
)
.
Error
if
err
!=
nil
{
logrus
.
Fatal
(
err
)
return
err
...
...
internal/controller/link_use_test.go
→
internal/controller/link_use
r
_test.go
View file @
9df34dc7
...
...
@@ -65,10 +65,10 @@ func TestLinkController_Create(t *testing.T) {
Short
:
"bing"
,
Comment
:
"test link 2"
,
Origin
:
"https://www.bing.com"
,
StartTime
:
null
.
Time
From
(
time
.
Now
()
),
EndTime
:
null
.
Time
From
(
time
.
Now
()
.
Add
(
24
*
time
.
Hour
)
),
StartTime
:
null
.
New
Time
(
time
.
Date
(
2023
,
7
,
30
,
12
,
0
,
12
,
0
,
time
.
Local
),
true
),
EndTime
:
null
.
New
Time
(
time
.
Date
(
2023
,
8
,
1
,
12
,
0
,
12
,
0
,
time
.
Local
),
true
),
},
errorCode
:
0
,
errorCode
:
dto
.
ErrShortLinkExist
,
},
// // 测试用例3:创建短链接失败,因为short字段已经存在
// {
...
...
@@ -83,8 +83,8 @@ func TestLinkController_Create(t *testing.T) {
// errorCode: dto.ErrShortLinkExist,
// },
}
var
testLinkCtl
ILinkController
testLinkCtl
=
new
(
LinkController
)
testLinkCtl
:
=
new
(
LinkController
)
for
_
,
test
:=
range
tests
{
w
:=
httptest
.
NewRecorder
()
ctx
,
_
:=
gin
.
CreateTestContext
(
w
)
...
...
@@ -99,3 +99,81 @@ func TestLinkController_Create(t *testing.T) {
}
}
func
TestLinkController_Delete
(
t
*
testing
.
T
)
{
var
tests
=
[]
struct
{
userID
uint
input
dto
.
LinkDeleteReq
errorCode
stacktrace
.
ErrorCode
}{
// 测试用例1:正常创建短链接,指定short字段,使用自定义的short值
{
userID
:
2
,
input
:
dto
.
LinkDeleteReq
{
Short
:
"bing"
,
},
errorCode
:
dto
.
ErrShortLinkExist
,
},
}
testLinkCtl
:=
new
(
LinkController
)
for
_
,
test
:=
range
tests
{
w
:=
httptest
.
NewRecorder
()
ctx
,
_
:=
gin
.
CreateTestContext
(
w
)
ctx
.
Set
(
model
.
USER_ID_KEY
,
test
.
userID
)
err
:=
testLinkCtl
.
Delete
(
ctx
,
&
test
.
input
)
if
test
.
errorCode
!=
0
{
assert
.
Equal
(
t
,
test
.
errorCode
,
stacktrace
.
GetCode
(
err
))
continue
}
assert
.
NoError
(
t
,
err
)
}
}
func
TestGetinfo
(
t
*
testing
.
T
)
{
var
tests
=
[]
struct
{
userID
uint
input
dto
.
GetLinkInfoReq
output
dto
.
GetLinkInfoResp
errorCode
stacktrace
.
ErrorCode
}{
{
userID
:
2
,
input
:
dto
.
GetLinkInfoReq
{
Short
:
"bing"
,
},
output
:
dto
.
GetLinkInfoResp
{
Active
:
null
.
BoolFrom
(
true
),
Comment
:
"test link 2"
,
EndTime
:
null
.
NewTime
(
time
.
Date
(
2023
,
8
,
1
,
12
,
0
,
12
,
0
,
time
.
Local
),
true
),
Origin
:
"https://www.bing.com"
,
Short
:
"short1"
,
//注意此处和bing不一样
StartTime
:
null
.
NewTime
(
time
.
Date
(
2023
,
7
,
30
,
12
,
0
,
12
,
0
,
time
.
Local
),
true
),
},
errorCode
:
0
,
},
}
controller
:=
&
LinkController
{}
for
_
,
test
:=
range
tests
{
w
:=
httptest
.
NewRecorder
()
ctx
,
_
:=
gin
.
CreateTestContext
(
w
)
ctx
.
Set
(
model
.
USER_ID_KEY
,
test
.
userID
)
resp
,
err
:=
controller
.
GetInfo
(
ctx
,
&
test
.
input
)
assert
.
Equal
(
t
,
test
.
output
.
Active
,
resp
.
Active
)
assert
.
Equal
(
t
,
test
.
output
.
Comment
,
resp
.
Comment
)
assert
.
Equal
(
t
,
test
.
output
.
EndTime
,
resp
.
EndTime
)
assert
.
Equal
(
t
,
test
.
output
.
Origin
,
resp
.
Origin
)
assert
.
Equal
(
t
,
test
.
output
.
Short
,
resp
.
Short
)
assert
.
Equal
(
t
,
test
.
output
.
StartTime
,
resp
.
StartTime
)
if
test
.
errorCode
!=
0
{
assert
.
Equal
(
t
,
test
.
errorCode
,
stacktrace
.
GetCode
(
err
))
continue
}
assert
.
NoError
(
t
,
err
)
}
}
internal/controller/testDB.go
View file @
9df34dc7
...
...
@@ -20,6 +20,7 @@ func testInitDB() *gorm.DB {
//迁移
db
.
AutoMigrate
(
&
model
.
Link
{})
db
.
AutoMigrate
(
&
model
.
User
{})
DB
=
db
...
...
utils/stacktrace/stacktrace.go
View file @
9df34dc7
...
...
@@ -174,7 +174,7 @@ func GetCode(err error) ErrorCode {
if
err
,
ok
:=
err
.
(
*
stacktrace
);
ok
{
return
err
.
code
}
return
1
//
NoCode
return
NoCode
}
type
stacktrace
struct
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment