作为标题,何时使用httptest.Server和httptest.ResponseRecorder?

在我看来,我还可以使用httptest.Server测试我的处理程序以返回正确的响应。我可以简单地启动带有处理程序实现的httptest.Server,然后在响应主体上进行验证。

如果我错了,请更正,我正在学习Go + TDD

最佳答案

当您只想检查http.Handler是否完成了应做的工作时,则无需使用httptest.Server。只需使用httptest.ResponseRecorder实例调用处理程序,然后像example一样检查输出即可。
httptest.Server的可能用途是多种多样的,因此,在我脑海中只有以下几点:

  • 如果您的代码依赖于某些外部服务和API,则可以使用测试服务器来模拟它们。 (尽管我个人将隔离处理外部数据源的所有代码,然后通过接口(interface)使用它们,以便我可以轻松地为测试创建伪造的对象。)
  • 如果您使用客户端服务器应用程序,则可以在测试客户端时使用测试服务器来模拟服务器端。
  • 关于unit-testing - 何时使用httptest.Server和httptest.ResponseRecorder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25911878/

    10-12 22:21