问题标签 [go-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 测试无法捕获日志输出
我正在尝试测试我的UserRegister
功能,它需要http
请求。
如果用户输入已经存在的电子邮件,UserRegister
则返回错误日志(使用logrus
)。
在我的测试模块中,我使用了以下内容。
结果:解析响应 strconv.Atoi 时出错:解析“”:语法无效
为什么响应不能转换?
检查线程:
编辑:在@chmike回答之后。
这是微服务的一部分。所有响应都写入API-Gateway
. 使用一个函数。
但在这里我只想执行单元测试并检查我的UserRegister
工作是否符合预期。
go - 运行测试用例时,模拟方法在 golang 中不起作用
我试图在测试用例中模拟一个结构方法,但它不起作用。我想在这里模拟Validate方法:`
`
我的测试用例:
这里没有调用MockDemoStruct.Validate 。我从 Validate 得到INVALID NUM 110,但它应该是MOCK ERROR 110
go - 在所有集成测试之前运行
Go 有能力在所有测试之前运行一些代码吗?我知道 Go 提供了 TestMain(),但它的包范围是 func,并且只会在她所在的包中设置和拆除测试。
但是我想在所有测试之前运行一些 docker 测试容器,当然,在所有测试完成后将其拆除。
go - 模拟测试文件中定义的接口:接口“未定义”?
这是一个我试图用一个最小的例子重现的错误,但到目前为止没有成功。Go 模块类似于以下内容:
wherehandler.go
为空(package handler
仅包含),handler_test.go
包含Handler
接口定义(与 Go 相同http.Handler
)和占位符测试,
并mock_handler.go
包含一个MockHandler
实现Handler
接口并使用以下方法生成的结构moq
:
为了生成mock_handler.go
,我最初定义了Handler
inhandler.go
然后在handler
目录中运行命令
我随后将Handler
接口定义移动到,handler_test.go
因为它仅用于测试。
在这个简化的示例中,我可以go test
在根目录中以包列表模式运行:
我的“实际”模块具有类似的结构,类似于以下内容:
接口的定义方式与简化模块中的完全相同Handler
;像这样开始:ensure_license_test.go
handler_test.go
ensure_license_test.go
mock_handler.go
也与简化模块中的完全相同mock_handler.go
(包名除外)。
然而,当我go test ./...
在“实际”模块的根目录中运行时,undefined
出现以下错误Handler
:
奇怪的是,当我从vpp
包中运行它时,它通过了:
像第一个示例中那样从根目录以包列表模式运行它时go test
无法定义定义的原因可能是什么?Handler
mongodb - Go:如何对一段适用于 Mongo 集合的代码进行单元测试?
我正在使用Go的官方 Mongo 驱动程序。我的代码看起来像这样(为了使示例更简单,省略了错误处理):
问题:如何对GetUsers
功能进行单元测试?
我浏览了驱动程序的文档,没有找到任何与测试相关的功能/最佳实践。
注意:完整代码可在GitHub上找到。
go - 将测试覆盖率输出发送到标准输出 - 将其发送到 S3
我想将 html 发送go test -c
到标准输出,这样我就可以从 S3 静态资产服务器提供生成的 HTML。
像这样的东西:
有没有办法在不使用的情况下写入标准输出-o /dev/stdout
?
go - 为什么在新计算机上访问 Firestore 时出现“恐慌:运行时错误:无效的内存地址或零指针取消引用”?
如果我尝试运行测试或直接通过以下方式运行应用程序,我会感到恐慌: go run main.go 该代码在我的旧 Macbook Pro 上运行良好。它在我的新 Macbook Pro 上出现恐慌。
我认为该错误与访问 Firestore 数据存储有关,但我不确定出了什么问题。
我正在运行相同的代码,因此数据存储区密钥和其他所有内容都应该相同。
这是 Github 存储库: https ://github.com/golangnewb/FirestoreTestHttp
工作电脑:go 版本 go1.11.2 darwin/amd64
Panic Computer: go version go1.13.5 darwin/amd64
如果我尝试通过以下方式运行,这是恐慌:
❯去运行main.go
go - 如何模拟多个 url 以返回夹具内容?
我正在编写某种递归解析器。最简单的形式是:
- 取自
all links
的first link
页面正文 - 对每个链接重复第一步
所以现在我想测试它。问题是我想不出模拟所有这些页面的最佳方法。我使用http
包,并且我已经使用httptest
包(通过httptest.NewServer
)编写了一些测试。但现在对我的任务似乎没有用。我想最好的方法是使用http.Client
自定义Transport
结构,但它有很多样板和额外的臭代码。有没有更优雅的方法来做到这一点?
go - 使用 Go Modules 时外部基准测试的最佳实践
我有一个 Go 存储库,其中有一些基准测试(在_test后缀的包中)。这些基准将其与一些第三方库进行比较。我没有在我的非基准代码中使用这些库。
我现在正在将我的 repo 迁移到 go 模块。我不想在我的 go.mod 中使用这些第三方库,因为我的库在正常使用时不需要它们,而且我不想将我的模块不必要地绑定到这些库。
推荐的 go-mod 方法是什么?我的想法:
- 在基准上构建标签
- 另一个回购的基准
- 我的模块中的模块