testing - 在 Go 中,当使用示例...测试方法时,有没有办法让它显示差异而不是得到...想要...?

标签 testing go

我一直在使用 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/

相关文章:

android - 我们如何测试移动应用程序的性能(android 和 IOS)

node.js - 如何修复 : "TypeError: wsModule.Server is not a constructor" when running tests in Jest

Golang Oauth2 服务帐户返回空刷新 token 字符串

http - 转到net/http Transport Accept-Encoding : gzip not prompting encoded response

go - Go程序中的三个后台goroutine是什么?

python - Flask test_client 去除查询字符串参数

Angular 2 单元测试在嵌套 ngModel 元素时必须多次调用 whenStable

docker - 如何使用 docker-compose 快速恢复新数据库以进行集成测试?

linux - 可执行文件可以动态解析其在文件系统上的位置或其实际的 "resting place"与用户的工作目录吗?

json - 解码 JSON 时出错