💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 6.5\. 一个带测试的演示包 这个演示用的包numbers含有一个函数Double,其参数为一个整数,返回值则是将该整数乘以2。这个包由三个文件组成: 第一个,包的实现,numbers.go: ``` package numbers func Double(i int) int { return i * 2 } ``` 接下来是测试,numbers_test.go: ``` package numbers import ( "testing" ) type doubleTest struct { in, out int } var doubleTests = []doubleTest{ doubleTest{1, 2}, doubleTest{2, 4}, doubleTest{-5, -10}, } func TestDouble(t *testing.T) { for _, dt := range doubleTests { v := Double(dt.in) if v != dt.out { t.Errorf("Double(%d) = %d, want %d.", dt.in, v, dt.out) } } } ``` 最后是Makefile: ``` include $(GOROOT)/src/Make.inc TARG=numbers GOFILES= numbers.go include $(GOROOT)/src/Make.pkg ``` 运行gomake构建并将这个包安装到$GOROOT/pkg/(可供系统上的所有程序使用)。 执行gotest测试会重建这个包,包括numbers_test.go文件,然后运行TextDouble函数。输出“PASS”表示所有测试都成功通过。把实现中的乘数从2改成3就能看到测试失败的报告。 更多细节请参考gotest文档和testing包的文档。