파일 시스템과 관련하여 특별히 도움이 될만한 것이 있는지 모르겠지만 background
또는 against-background
(렉시 컬 스코핑이 필요한 경우)을 사용하여 설정 및 해체를 수행 할 수 있습니다.
일반적인 아이디어는 다른 언어 설치/해체와 비슷합니다, 당신은 같은 것을 할 것 :
(require '[clojure.java.io :as io])
(background (before :facts (io/make-parents "parent/child/file")
:after :facts (map io/delete-file (reverse (file-seq (io/file "parent")))
(facts "About something or other
...)
당신의 사실 전에,이 (없는 파일을 parent
및 child
디렉토리를 생성합니다 - 당신은 파일이 필요한 경우 spit 또는 무언가를 추가 할 수 있습니다.) 그런 다음 당신의 사실 후 :
- 재귀 적
parent
디렉토리의 내용 목록을 가져옵니다
- reverse (file-seq 사용)을 (우리는 하늘의 일을 삭제할 수 있습니다, 그래서 하단에 시작해야하기 때문에이야 디렉토리 트리)
- 트리의 각 디렉토리에 delete-file 함수를 적용
만들 수 없습니다 파일을 삭제하는이 코드 최고 (나는)!이 새로운 해요,하지만 설정하는 방법 위로 Midje 테스트에서 물건을 찢는 것은 건전합니다. 주의 할
것 :이 방법을 사용하는 경우
- 이 트리의 심볼릭 링크에주의는, 당신은 루프에 갇혀 얻을 수 있습니다.
(after)
매크로를 사용하는 대신 :after
구문을 사용하면 테스트에서 예외가 throw 된 경우에도 해체가 수행됩니다.
(against-background)
으로 랩핑하고 동일한 작업을 대신 수행하여 단일 네임 스페이스에서 팩트의 하위 집합 뒤에 setup/teardown을 수행 할 수 있습니다.
참고 :
https://github.com/marick/Midje/wiki/Setup,-Teardown,-and-State https://github.com/marick/Midje/wiki/Background-prerequisites