我正在做一些测试。我有一个文件dao.go:
package model_dao
import "io/ioutil"
const fileExtension = ".txt"
type Page struct {
Title string
Body []byte
}
func (p Page) SaveAsFile() (e error) {
p.Title = p.Title + fileExtension
return ioutil.WriteFile(p.Title, p.Body, 0600)
}
func LoadFromFile(title string) (*Page, error) {
fileName := title + fileExtension
body, err := ioutil.ReadFile(fileName)
if err != nil {
return nil, err
}
return &Page{title, body}, nil
}
测试文件dao_test.go:
package model_dao_test
import (
"shopserver/model/dao"
"testing"
)
func TestDAOFileWorks(t *testing.T) {
TITLE := "test"
BODY := []byte("Hello, World!!")
p := &model_dao.Page{TITLE, BODY}
p.SaveAsFile()
p, _ = model_dao.LoadFromFile(TITLE)
result := p.Body
if string(BODY) != string(result) {
t.Error("Body", BODY, "saved.\n", "Load:", result)
}
}
这里我测试了 Page 中的所有2个方法,但经过测试后我看到了一条消息:
为什么我只获得85.7%?他在哪里获得这个数字以及如何获得100%?
答案 0 :(得分:4)
请参阅" The Go Blog - The cover story"
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
这将显示源文件的HTML表示,您可以清楚地看到测试涵盖哪些行。
其他Go测试框架也会向您显示相同的可视化 例如,见 GoConvey 。