go模板的示例测试因导入而未使用而失败:" testing"

时间:2016-07-31 07:20:04

标签: unit-testing testing go

据我所知,我需要按照以下结构进行测试'完美无缺。我没有看到我可以在其他软件包中运行的测试存在差异。 ' go build'工作良好。 我得到了

  

./ HelloTemplate_test.go:3:导入但未使用:"测试"   ./HelloTemplate_test.go:5:undefined:在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 个答案:

答案 0 :(得分: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 ")
    }
}