我正在尝试使用 Ring + Compojure + lib-noir 进行 Clojure Web 开发,但我不知道如何测试会话状态。
问问题
555 次
2 回答
0
我认为您可以模仿用于环中实际会话测试的样式:https ://github.com/ring-clojure/ring/blob/master/ring-core/test/ring/middleware/session/test/cookie .clj。
只需创建一个 cookie 存储,然后对其进行读/写,并断言处理程序相应地响应。鉴于您也在使用 lib-noir,也许这个例子更合适:https ://github.com/noir-clojure/lib-noir/blob/master/test/noir/session_test.clj 。
于 2014-08-02T02:29:20.873 回答
0
如果您的意思是单元测试,您可以使用binding
,这将为变量创建新的绑定。
您可以在这里找到一个很好的解释。
一个示例单元测试lib-noir
(ns your.test.core
(:use [clojure.test])
(:require [noir.session :as s]))
(binding [s/*noir-session* (atom {})]
; store new sessions
(s/put! "xxxx" {:value "1234"})
(s/put! "my_session" {:value "abcdefg"})
; run tests
(is (= {:value "1234"} (s/get "xxxx")))
(is (= {:value "abcdefg"} (s/get "my_session"))))
你可以查看这里的源代码。noir.session
于 2015-12-17T16:45:37.143 回答