我的问题特定于 Go-kit 以及如何在其中组织代码。我正在尝试为以下功能编写单元测试:
func MakeHandler(svc Service, logger kitlog.Logger) http.Handler {
orderHandler := kithttptransport.NewServer(
makeOrderEndpoint(svc),
decodeRequest,
encodeResponse,
)
r := mux.NewRouter()
r.Handle("/api/v1/order/", orderHandler).Methods("GET")
return r
}
编写适当的单元测试的正确方法是什么?我见过如下例子:
sMock := &ServiceMock{}
h := MakeHandler(sMock, log.NewNopLogger())
r := httptest.NewRecorder()
req := httptest.NewRequest("GET", "/api/v1/order/", bytes.NewBuffer([]byte("{}")))
h.ServeHTTP(r, req)
然后测试请求的主体和标头。但这看起来不像是适当的单元测试,因为它调用了代码的其他部分 ( orderHandler)。是否可以只验证返回的内容MakeHandler()而不是在请求期间?
摇曳的蔷薇
相关分类