使用 Golang 进行功能测试

Functional testing with Golang

我有一个用 Golang 编写的网络服务。

我需要重构它,因为它写得不好。

我见过 Golang 使用格式 TestMethodName(t *testing.T)。这非常适合单元测试,但就我而言,由于重构,方法会发生很大变化。

这就是我想编写功能测试的原因,这样我就可以测试每个端点,并检查输出格式是否正确,而不依赖于功能

我应该如何使用 Golang 来实现?

是否有任何框架可以帮助我进行功能测试?在另一个堆栈中,例如 PHP / Laravel,我可以将 PostgreSQL 与 SQLite 或内存测试交换,这对于此类测试非常实用。

您可以使用 net/http/httptest 包和模拟外部依赖项来测试您的 API 端点。

参见示例:https://golang.org/src/net/http/httptest/example_test.go