【问题标题】:Functional testing with Golang使用 Golang 进行功能测试
【发布时间】:2019-05-02 13:54:13
【问题描述】:

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

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

我看到 Golang 使用 TestMethodName(t *testing.T) 格式工作。这非常适合单元测试,但在我的例子中,由于重构,方法会发生很大变化。

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

我应该如何使用 Golang?

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

【问题讨论】:

  • 我看不出测试包“非常适合单元测试”如何使它不适合功能测试。
  • 只要函数的输入输出不变,你可以继续使用相同的测试
  • 仅仅因为函数通常被命名为TestMethodName,并不意味着你必须使用那个命名方案,或者不能测试你想要的任何东西。查看任何大型 Go 项目,您会看到各种测试,在所有集成级别。
  • @JuliatzindelToro 询问框架/库建议的问题是题外话 (*.com/help/on-topic)。如果您需要帮助,请向我们展示您尝试过的代码并解释您遇到的问题 (*.com/help/how-to-ask)。
  • 查看这篇文章以帮助您入门:blog.questionable.services/article/testing-http-handlers-go

标签: go testing functional-testing


【解决方案1】:

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

查看示例:https://golang.org/src/net/http/httptest/example_test.go

【讨论】:

    最近更新 更多