1、golang中的单元测试
2、golang中单元测试的是使用
3、简单应用:
被测试文件:
package vegetables
import (
"encoding/json"
"fmt"
"io/ioutil"
)
/**
* @Description:包含一个蔬菜结构体和相关方法
* @Author: guai
* @Date:2020/2/25 20:02
**/
type Vegetables struct {
Name string
Age int
Skil string
}
//给Vegetables绑定一个Store方法,将一个Vegetables变量(对象),序列化后保存到文件中
func (this *Vegetables) Store() bool {
//先序列化
data, err := json.Marshal(this)
if err != nil {
fmt.Println("marshal err:", err)
return false
}
//保存到文件
filePath := "e:/test.txt"
err = ioutil.WriteFile(filePath, data, 0666)
if err != nil {
fmt.Println("write file err:", err)
return false
}
return true
}
//给Vegetables绑定一个ReStore方法,将一个序列化的Vegetables,从文件中读取出来
func (this *Vegetables) ReStore() bool {
//从文件中读取序列化的字符串
filePath := "e:/test1.txt"
data, err := ioutil.ReadFile(filePath)
if err != nil {
fmt.Println("read file err:", err)
return false
}
var str string
err = json.Unmarshal(data, this)
if err != nil {
fmt.Println("unmarshal err:", err)
return false
}
fmt.Println("data:", str)
return true
}
测试文件:
package vegetables
import (
"fmt"
"testing"
)
/**
* @Description:vegetables测试方法
* @Author: guai
* @Date:2020/2/25 20:17
**/
func TestStore(t *testing.T) {
//创建一个Vegetables实例
vegetable := Vegetables{
Name: "cabbage",
Age: 18,
Skil: "eat",
}
res := vegetable.Store()
if !res {
t.Fatalf("monster.Stroe err result%v", res)
}
t.Logf("vegetables.Store() success")
}
func TestReStore(t *testing.T) {
//创建Vegetables对象
var vegetable Vegetables
res := vegetable.ReStore()
if !res {
t.Fatalf("vegetable.ReStore() err")
}
fmt.Println("this:", vegetable)
t.Logf("vegetable.ReStore() success")
}
测试Store方法的结果:
测试ReStore方法的结果:(此处故意将路径写错)
简单撒花