-
Notifications
You must be signed in to change notification settings - Fork 0
/
goserver_test.go
118 lines (90 loc) · 2.58 KB
/
goserver_test.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
package gotest
import (
"errors"
"github.com/KerryJava/goserver/base"
"github.com/jinzhu/gorm"
//"goserver"
"fmt"
"testing"
)
type User struct {
ID int64 `json:"userid"`
Phone int64 `json:"phone"`
Name string `json:"Name"`
}
func (User) TableName() string {
return "user"
}
func Division(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("除数不能为0")
}
return a / b, nil
}
func Test_Division_1(t *testing.T) {
if i, e := Division(6, 2); i != 3 || e != nil { //try a unit test on function
t.Error("除法函数测试没通过") // 如果不是如预期的那么就报错
} else {
t.Log("第一个测试通过了") //记录一些你期望记录的信息
}
}
//func Test_Division_2(t *testing.T) {
// t.Error("就是不通过")
//}
func Test_Mysql(t *testing.T) {
user := User{}
name := "testuser"
base.OrmDB.Where(&User{Name: name}).First(&user)
fmt.Println(user.Name)
fmt.Println("%v", user)
}
func Benchmark_TimeConsumingPreloadOrm(b *testing.B) {
b.StopTimer() //调用该函数停止压力测试的时间计数
b.StartTimer() //重新开始时间
for i := 0; i < b.N; i++ {
OrmRawQuery()
}
}
func Benchmark_TimeConsumingOrm(b *testing.B) {
b.StopTimer() //调用该函数停止压力测试的时间计数
//做一些初始化的工作,例如读取文件数据,数据库连接之类的,
//这样这些时间不影响我们测试函数本身的性能
b.StartTimer() //重新开始时间
for i := 0; i < b.N; i++ {
//Division(4, 5)
OrmQuery()
}
}
func Benchmark_TimeConsumingFunctionRawQuery(b *testing.B) {
b.StopTimer() //调用该函数停止压力测试的时间计数
//做一些初始化的工作,例如读取文件数据,数据库连接之类的,
//这样这些时间不影响我们测试函数本身的性能
b.StartTimer() //重新开始时间
for i := 0; i < b.N; i++ {
//Division(4, 5)
base.RawQuery(false)
}
}
func Benchmark_TimeConsumingFunctionRawQueryPrepare(b *testing.B) {
b.StopTimer() //调用该函数停止压力测试的时间计数
//做一些初始化的工作,例如读取文件数据,数据库连接之类的,
//这样这些时间不影响我们测试函数本身的性能
b.StartTimer() //重新开始时间
for i := 0; i < b.N; i++ {
//Division(4, 5)
base.RawQuery(true)
}
}
func OrmQuery() {
user := User{}
name := "testuser"
base.OrmDB.Where(&User{Name: name}).First(&user)
// fmt.Println(user.Name)
}
func OrmRawQuery() {
user := User{}
name := "testuser"
var db *gorm.DB = base.OrmDB
db.Raw("SELECT name, phone FROM user WHERE name = ?", name).Scan(&user)
// fmt.Println(user.Name)
}