我一直在使用 go 来做一个更大的项目并且喜欢它,并且在我的测试中我一直使用
func ExampleXxx {
... code ...
//Output:
//...expected output ...
}
测试方法。当失败时它会说
got:
... bunch of lines showing the output of test ...
want:
... the comment you put in to show what you expected ...
有什么办法可以让它只显示差异吗?我可以将两者复制到单独的文件并运行差异等,但我宁愿让它显示错误的部分,因为我的一些测试的输出更长。
提前致谢
编辑:
我正在使用http://golang.org/pkg/testing/#hdr-Examples并希望输出显示差异而不是当前输出。我知道我可以手动进行差异。
最佳答案
不,你不能这样做。这不是示例的预期用途。
示例是展示某些函数如何运行的好方法:示例存在于文档中。验证示例输出的主要原因是确保示例有效/正确,而不是确保您的代码没问题。对于后者,您有测试功能
示例的输出通常显示每行一次调用某个函数/方法的输入和输出(或仅输出);有时示例使用不同的行来显示复杂结果的一部分,例如返回 slice 的每个元素一行。
我认为您使用示例来“验证我的程序的流程”与示例的意图相矛盾。如果我想测试例如,我会使用测试函数并使用任何可用的 diff 工具来生成一个 got、want、diff 输出。处理大量输入的文本处理器。
关于testing - 在 Go 中,当使用示例...测试方法时,有没有办法让它显示差异而不是得到...想要...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158782/