我应该避免在生产代码中使用 net/http/httptest 吗?

Should I avoid using net/http/httptest in production code?

我喜欢在某些情况下 net/http/httptest.ResponseRecorder 可以将缓冲的 net/http.ResponseWriter 呈现为 net/http.Response 的功能,但是包名称让我有点担心使用它在生产代码中。我知道它主要用于 测试,但我不确定在生产代码中使用它是否会带来麻烦。

我这是在试探命运吗?

您不应在生产中使用此代码。无论您想要实现什么。

httptest.ResponseRecorder的最终目的是方便测试,因此会一直扩展、优化——重写——考虑到测试。 任何 假设都可以在此包中进行,只要它能使包更好地进行测试即可。软件包作者打算将其设置为 "used in concert with go test"¹。我将其解释为不鼓励生产使用,因为它们可以自由破坏,例如您的生产使用支持 go test 使用。

另一个论点是安全问题。任何测试包的安全模型都将是使用受信任的,而非测试代码则相反。

软件世界是一个危险的地方。你要求让它变得更加危险。