Golang 测试标准输出

我正在尝试测试一些打印 ANSI 转义码的函数。例如


// Print a line in a color

func PrintlnColor(color string, a ...interface{}) {

    fmt.Print("\x1b[31m")

    fmt.Print(a...)

    fmt.Println("\x1b[0m")

}

我尝试使用示例来做到这一点,但他们似乎不喜欢转义码。


有什么方法可以测试写入标准输出的内容吗?


心有法竹
浏览 171回答 1
1回答

慕神8447489

使用fmt.Fprintto print toio.Writer可让您控制写入输出的位置。var out io.Writer = os.Stdoutfunc main() {    // write to Stdout    PrintlnColor("foo")    buf := &bytes.Buffer{}    out = buf    // write  to buffer    PrintlnColor("foo")    fmt.Println(buf.String())}// Print a line in a colorfunc PrintlnColor(a ...interface{}) {    fmt.Fprint(out, "\x1b[31m")    fmt.Fprint(out, a...)    fmt.Fprintln(out, "\x1b[0m")}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go