2016-07-31 5 views
0

Soweit ich sagen kann ich folgende Struktur für 'go test' fehlerfrei. Ich sehe keine Diskrepanz zu Tests, die ich in anderen Paketen ausführen könnte. "go build" funktioniert gut. Ich erhalteBeispiel Test von go Vorlagen schlägt mit importierten und nicht verwendet: "testen"

./HelloTemplate_test.go:3: importiert und nicht verwendet wird: "testing" ./HelloTemplate_test.go:5: undefined: Prüfung in Testing.T

Was Vermisse ich?

HelloTemplate.go

package templateprint 

import "testing" 

func TestRunTempl(t *Testing.T) { 
    sweaters := Inventory{"wool", 17} 
    tmpl := "{{.Count}} items are made of {{.Material}}" 
    err := RunTempl(tmpl, sweaters) 
    if err != nil { 
     t.Error("Template failed ") 
    } 
} 

HelloTemplate_test.go

package templateprint 

import (
    "os" 
    "text/template" 
) 

type Inventory struct { 
    Material string 
    Count uint 
} 

func RunTempl(templ string, inv Inventory) error { 
    tmpl, err := template.New("test").Parse(templ) 
    if err != nil { 
     return (err) 
    } 
    err = tmpl.Execute(os.Stdout, inv) 
    if err != nil { 
     return (err) 
    } 
    return nil 
} 

Antwort

1

Sie verwenden einen falschen Typ in Ihrer Testfunktion:

// tesintg.T, not Testing.T 
// T is a type defined in testing module 
func TestRunTempl(t *testing.T) { 
    sweaters := Inventory{"wool", 17} 
    tmpl := "{{.Count}} items are made of {{.Material}}" 
    err := RunTempl(tmpl, sweaters) 
    if err != nil { 
     t.Error("Template failed ") 
    } 
}