您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在单元测试中测试功能的输出(stdout / stderr)

如何在单元测试中测试功能的输出(stdout / stderr)

还需要记住的一件事是,没有什么可以阻止您编写避免编写样板代码函数

例如,我有一个使用的命令行应用程序,log我编写了以下函数

func captureOutput(f func()) string {
    var buf bytes.Buffer
    log.SetOutput(&buf)
    f()
    log.SetOutput(os.Stderr)
    return buf.String()
}

然后像这样使用它:

output := captureOutput(func() {
    client.RemoveCertificate("www.example.com")
})
assert.Equal("removed certificate www.example.com\n", output)

使用此断言库:http ://godoc.org/github.com/stretchr/testify/assert。

其他 2022/1/1 18:17:20 有613人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶