根据GoLang文档,您可以为一段代码编写示例。 有关更多信息,请参见https://blog.golang.org/examples。
我有以下方法:
// StdOutSink is a 'log.Sink' implementation which logs to 'StdOut'.
type StdOutSink struct {
}
// Write prints a message to 'StdOut'.
func (s StdOutSink) Write(msg message) {
fMsg := fmtMsg(msg)
fmt.Printf("%v\n", fMsg)
}
我想为此提供一个可测试的示例,该示例通过以下代码完成:
// Ensures the correct implementation of the 'Write' method.
func ExampleWrite() {
// Arrange.
s := new(StdOutSink)
// Act.
s.Write(createMessage(traceS, "Message"))
s.Write(createMessage(debugS, "Message"))
s.Write(createMessage(infoS, "Message"))
s.Write(createMessage(warnS, "Message"))
s.Write(createMessage(errorS, "Message"))
s.Write(createMessage(fatalS, "Message"))
// Output:
// [TRACE]: Message
// [DEBUG]: Message
// [INFO]: Message
// [WARNING]: Message
// [ERROR]: Message
// [FATAL]: Message
}
// PRIVATE: createMessage returns a 'log.message' with the given severity and text.
func createMessage(s severity, txt string) message {
msg := new(message)
msg.severity = s
msg.text = txt
return *msg
}
这一切正常,正在执行测试,但是go-vet
收到以下消息:
`ExampleWrite refers to unknown identifier: Write`
我应该如何命名示例方法,以便将其链接到函数func (s StdOutSink) Write(msg message)