Go-单元测试(综合案例)
综合案例
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
type Monster struct {
Name string
Age int
Skill string
}
func (m *Monster) Store() bool {
//序列化
data, err := json.Marshal(m)
if err != nil {
fmt.Printf("序列化失败err=%v", err)
return false
}
//保存到文件
filePath := "C:/Users/pc/Desktop/moster.ser"
err = ioutil.WriteFile(filePath, data, 0666)
if err != nil {
fmt.Printf("写文件失败err=%v", err)
return false
}
return true
}
func (m *Monster) ReStore() bool {
//读取文件
filePath := "C:/Users/pc/Desktop/moster.ser"
data, err := ioutil.ReadFile(filePath)
if err != nil {
fmt.Printf("读文件失败err=%v", err)
return false
}
//反序列化
err = json.Unmarshal(data, m)
if err != nil {
fmt.Printf("反序列化失败err=%v", err)
return false
}
return true
}
package main
import "testing"
func TestStore(t *testing.T) {
monster := &Monster{
Name: "红孩儿",
Age: 10,
Skill: "吐火",
}
res := monster.Store()
if !res {
t.Fatalf("错误,希望为%v,实际为%v", true, res)
}
t.Logf("测试成功")
}
func TestReStore(t *testing.T) {
monster := Monster{}
res := monster.ReStore()
if !res {
t.Fatalf("错误,希望为%v,实际为%v", true, res)
}
if monster.Name != "红孩儿" {
t.Fatalf("错误,希望为%v,实际为%v", "红孩儿", monster.Name)
}
t.Logf("测试成功")
}
或者测试单个方法
转载请注明出处,欢迎讨论和交流!