2016-07-31 9 views
0

私が言う限り、私は完全に 'go test'に必要な構造に従っています。私は他のパッケージで実行できるテストとは矛盾していません。 'go build'はうまく動作します。 私は./HelloTemplate_test.go:3goテンプレートのサンプルテストは、インポート済みで失敗して失敗します: "testing"

を取得しています:使用インポートしていない: ./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 ") 
    } 
} 
関連する問題