我正在尝试使用 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"}
在那里。
我做错了什么,如何将尸体传递到这条路线?