首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能用Gomega模拟示例测试?

有没有可能用Gomega模拟示例测试?
EN

Stack Overflow用户
提问于 2014-12-23 09:42:41
回答 1查看 318关注 0票数 0

我有一些go测试,我想要更新以使用Ginkgo进行BDD风格的测试。问题是,服务器使用stdout和stderr进行日志记录,并且许多测试使用Go内置的“示例”测试框架,如下所示:

代码语言:javascript
复制
import (
    "fmt"
)

func ExampleConsoleLog() {
    fmt.Printf("Testing %d, %d, %d: %s\n", 1, 2, 3, "mike check")

    // Output:
    // Testing 1, 2, 3: mike check
}

我想使用Ginkgo和Gomega断言,这些都会打印到stdout,但没有内置的匹配器可以这样做。Gomega确实提供了一个gbytes包,但是没有关于如何将gbytes.Buffer“附加”到标准输出或标准错误的文档。有没有定制的匹配器可以用来做这个?

EN

回答 1

Stack Overflow用户

发布于 2015-01-03 23:33:16

您可以编译二进制文件并通过gexecgbytes启动并测试其输出:http://onsi.github.io/gomega/#gexec-testing-external-processes

如果您正在尝试测试特定函数的输出(不编译和启动外部库),最干净的方法可能是注入一个io.Writer,然后传入gbytes缓冲区。还有其他选择,尽管它们有点不雅观:In Go, how do I capture stdout of a function into a string?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27612983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档