为中间事实设置和拆除临时目录

时间:2012-12-08 13:59:59

标签: unit-testing clojure midje

这是我想要实现的目标的骨架

(let [temp-dir (create-temp-dir)]          ; setup
  (fact
    (do-something-with temp-dir) => true)  ; actual test
  (delete-dir temp-dir))                   ; teardown

midje测试框架给出了access to lexical scope(向下滚动到最后)。所以这是我期望的工作:

(against-background
  (around :facts
    (let [temp-dir (create-temp-dir)]
      (do ?form (delete-dir temp-dir))))
  (fact (do-something-with temp-dir) => true))

但是编译器抱怨它无法解析符号temp-dir。知道如何使这项工作吗?

1 个答案:

答案 0 :(得分:1)

你错过了包装器周围的方括号。从您包含的链接:

  

可以在三种不同的形式中找到零个或多个包装器:

     

(反对背景[包装] ......)

     

包装器适用于背景中的所有表单。

     

(事实......(反对背景包装)......)

     

从语义上讲,这与包装的背景相同   这个事实。背景形式可以出现在任何地方   事实上的顶级形式,可以有不止一个。请注意它   没有被[]包围。

     

(背景包装......)