【发布时间】:2023-02-06 22:16:46
【问题描述】:
我正在编写一个测试框架,并希望在我的文档中添加示例。为了可维护性,我想对这些示例进行测试,但我不知道如何进行。
理想情况下,我想要一个经过测试的示例,如下所示:
func TestFoo(t *testing.T) {
f := mytestframework.FromT(t)
// code using f
}
将上面的 sn-p 包装在 func ExampleFoo() { } 中不起作用,因为不能嵌套函数定义(这是语法错误)。
我试过将它放在一个单独的example_test.go 文件中,但是根据 go.dev 博客,在整个文件示例中(强调我自己的),godoc 会将其误认为是测试文件:
一个完整的文件示例是一个以 _test.go 结尾并只包含一个示例函数的文件,没有测试或基准功能,和至少一个其他包级声明。
我查看了 Go 的 doc 包的文档,但我不知道这对我是否有用。
我可以将示例作为降价代码块粘贴到文档中的某个地方,但是这样就不会对其进行测试并且将来可能会悄悄过时。
有没有办法测试示例测试,或者至少进行类型检查?
【问题讨论】: