2016-07-31 1 views
0

Насколько я могу судить, я следую структуре, необходимой для «go test» безупречно. Я не вижу расхождения в тестах, которые я мог бы запускать в других пакетах. «go build» отлично работает. Я получаюПример теста шаблонов go невозможен с импортированным и не используется: «тестирование»

./HelloTemplate_test.go:3: привозная и не используется: "тестирование" ./HelloTemplate_test.go:5: не определено: Тестирование в Testing.T

Что я пропал без вести?

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 
} 

ответ

1

Вы используете неправильный тип в тестовой функции:

// 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 ") 
    } 
} 
Смежные вопросы