我正在尝试使用ring.mock.requests库来测试http服务。我有这段代码
(auth-routes
(->
(mock/request :post "/auth/user")
(mock/body {:username "user" :password "pass"})
(mock/content-type "application/json")))
带有线程优先宏的内部部分似乎工作正常,但是当我尝试将模拟请求设置为auth-routes时失败
这是我的路线:
(def auth-routes
(context "/auth" []
:tags ["Authentication"]
(POST "/user" []
:return s/Uuid
:body [request m/User]
:summary "Create new user"
(ok (auth/create-user request)))) ...)
这是我的架构:
(def User {:username s/Str
:password s/Str})
我看到的例外是
clojure.lang.ExceptionInfo
Request validation failed
{:error (not (map? nil)), :type :compojure.api.exception/request-validation}
看起来我的路线以nil
为主体,我希望{:username "user" :password "pass"}
能够在那里。
我做错了什么,如何将身体传递到这条路线?