testing测试框架,go test工具
go test -timeout 300s git.windimg.com\giantthong\accounting\datasource -coverprofile=coverage
go tool cover -html=coverage -o coverage.html
./test.go
package main
import (
"bufio"
"encoding/json"
"io/ioutil"
"os"
)
type Monster struct {
Name string `json:"name,omitempty"`
Age int `json:"age,omitempty"`
Skill string `json:"skill,omitempty"`
}
func (m *Monster) Store() error {
file, err := os.OpenFile("./monster.dat", os.O_CREATE|os.O_WRONLY, 0666)
if err != nil {
return err
}
defer file.Close()
data, err := json.Marshal(*m)
if err != nil {
return err
}
writer := bufio.NewWriter(file)
_, err = writer.Write(data)
if err != nil {
return err
}
writer.Flush()
return nil
}
func (m *Monster) Restore(fileName string) error {
data, err := ioutil.ReadFile("./monster.dat")
if err != nil {
return err
}
err = json.Unmarshal(data, m)
if err != nil {
return err
}
return nil
}
./test_test.go
package main
import (
"io/ioutil"
"testing"
"github.com/stretchr/testify/assert"
)
func TestStore(t *testing.T) {
m := &Monster{
Name: "zhangsan",
Age: 15,
Skill: "chichihehe",
}
err := m.Store()
assert.NoError(t, err)
t.Logf("%+v\n", *m)
content, err := ioutil.ReadFile("./monster.dat")
assert.NoError(t, err)
t.Log(string(content))
}
func TestMonster_Restore(t *testing.T) {
m := &Monster{}
err := m.Restore("./monster.dat")
assert.NoError(t, err)
t.Logf("%+v", *m)
}