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("测试成功")
}
或者测试单个方法
转载请注明出处,欢迎讨论和交流!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具