我正在尝试测试模板生成工具。为了做到这一点,我认为捕获模板执行输出的最简单方法是使用 io writer 并在测试期间提供它。问题是由于某些原因,接收器没有用模板输出“更新”。希望下面的代码更好地解释了我面临的问题。
package main
import "fmt"
import "text/template"
type Company struct{
Name string
}
type Companies []Company
func main() {
s := new(stringer)
v := Companies{Company{Name:"Sony"}}
tmp := template.Must(template.New("main").Parse(src))
if err := tmp.Execute(s, v); err !=nil{
panic(err)
}
if *s != "this is the header template"{
fmt.Println("expected: \"this is the header template\" received: ", *s)
}else{
fmt.Println("s is %v", *s)
}
}
type stringer string
func (s *stringer)Write(b []byte)(int, error){
*s = stringer(b)
return len(b), nil
}
var src = `
this is the header template
{{range .}}
{{.Name}}
{{end}}
`
http://play.golang.org/p/y4zWgyd5G1
桃花长相依
相关分类