用蚊进行clojure试验
我的函数接受一个map参数,在该参数中我从中获取存款值。目前,我能够测试诸如存款值是否为空或存款值是否大于某个值等场景。我的API跟踪用户进行存款的次数,并使用atom对此进行跟踪,当用户进行了超过4次存款时,他/她应该会收到某个错误消息。如何使用midje测试此场景 下面是我的示例测试用例:用蚊进行clojure试验,clojure,midje,Clojure,Midje,我的函数接受一个map参数,在该参数中我从中获取存款值。目前,我能够测试诸如存款值是否为空或存款值是否大于某个值等场景。我的API跟踪用户进行存款的次数,并使用atom对此进行跟踪,当用户进行了超过4次存款时,他/她应该会收到某个错误消息。如何使用midje测试此场景 下面是我的示例测试用例: (facts "Mytesting" (fact "Invalid Amount" (let [response (httpserver/app (mock/req
(facts "Mytesting"
(fact "Invalid Amount"
(let [response (httpserver/app (mock/request
:post "/deposit"
{:deposit "9"}))] ;
(:status response) => 422
(:headers response) => {"Content-Type" "application/json; charset=utf-8", "X-Content-Type-Options" "nosniff", "X-Frame-Options" "SAMEORIGIN", "X-XSS-Protection" "1; mode=block"}
(:body response) => (json/write-str {:status-code -2 :status-msg "Invalid Amount"}))))
首先,您应该先编写测试:-) 但由于代码已经存在,我将告诉您我通常是如何工作的:
- 我将测试分为测试HTTP路由(就像您在这里所做的那样)。在这里,我使用Midje提供的
功能验证是否正确调用了支持函数
- 其他测试直接调用支持函数,传入类似于环请求的映射(或Yada上下文,或您使用的任何内容)。在这里,您还可以使用
模拟任何其他不直接相关的功能提供的
- 支持函数通常委托给实际的“业务”函数,这些函数不知道http请求,但只接受并返回业务实体(通常只是Clojure中的映射和向量)