我正在尝试制作文档并提供示例,但我并不了解如何,因为godoc正在跳过我的示例。
当我在浏览器上转到localhost:8080/pkg/hello_example
时,它会在终端上打印:
2014/07/01 15:54:29 skipping example 'ExampleAuthenticate' because 'Authenticate' is not a known function or type
2014/07/01 15:54:29 skipping example 'ExampleGetAllowAllDriver' because 'GetAllowAllDriver' is not a known function or type
2014/07/01 15:54:29 skipping example 'ExampleGetAndUseAllowAllDriver' because 'GetAndUseAllowAllDriver' is not a known function or type
2014/07/01 15:54:29 skipping example 'ExampleGetAndUseDenyAllDriver' because 'GetAndUseDenyAllDriver' is not a known function or type
2014/07/01 15:54:29 skipping example 'ExampleGetDenyAllDriver' because 'GetDenyAllDriver' is not a known function or type
2014/07/01 15:54:29 skipping example 'ExampleGetRedisDriver' because 'GetRedisDriver' is not a known function or type
2014/07/01 15:54:30 skipping example 'ExampleAuthenticate' because 'Authenticate' is not a known function or type
2014/07/01 15:54:30 skipping example 'ExampleGetAllowAllDriver' because 'GetAllowAllDriver' is not a known function or type
2014/07/01 15:54:30 skipping example 'ExampleGetAndUseAllowAllDriver' because 'GetAndUseAllowAllDriver' is not a known function or type
2014/07/01 15:54:30 skipping example 'ExampleGetAndUseDenyAllDriver' because 'GetAndUseDenyAllDriver' is not a known function or type
2014/07/01 15:54:30 skipping example 'ExampleGetDenyAllDriver' because 'GetDenyAllDriver' is not a known function or type
2014/07/01 15:54:30 skipping example 'ExampleGetRedisDriver' because 'GetRedisDriver' is not a known function or type
^C%
我不明白,所以我不能给出任意名称的例子吗?名称是否必须匹配我的包或我的文件的功能名称?这是在我的测试包中,所以我可能正在尝试在不同的包和文件中测试函数。我该怎么做?
答案 0 :(得分:4)
godoc对名称非常挑剔,您的示例函数名称需要与实际函数名称,类型名称或其他名称相关联。请参阅http://golang.org/pkg/testing/#hdr-Examples以供参考。
godoc exmaple示例:https://godoc.org/github.com/creack/multio#example-Multiplexer--ReadWriter,代码:https://github.com/creack/multio/blob/master/example_test.go
您会注意到,示例名为ExampleMultiplexer_simple
ExampleMultiplexer_readWriter
。这是因为我想要两个例子,我可以简单地使用ExampleMultiplexer
。这是有效的,因为我有一个名为(确切)Multiplexer
的类型。如果你有一个功能,你可以这样做,但名称需要匹配。
使用后缀时,后缀以小写字母开头非常重要,否则godoc会丢弃它。
所以回答你的问题:是的,你可以使用任意名称,但你仍然需要遵循ExampleTypeName_suffix
(小写后缀第一个字母)的godoc风格