повторное использование настройки и разрыва с фоном в середине - PullRequest
4 голосов
/ 11 февраля 2012

У меня есть несколько промежуточных фактов, в которых настройки / срывы практически, но не совсем, полностью совпадают.

(against-background [(before :contents (setup!)) (before :contents (data)) (before :facts (set-access)) (after :contents (teardown!)]
  (facts "about this thing i am testing "
    ; ...
  ))

(against-background [(before :contents (setup!)) (before :contents (data)) (before :facts (set-other-access)) (after :contents (teardown!)]
  (facts "about this other thing i am testing "
    ; ...
  ))

Я хотел бы обернуть фоны во что-то многократно используемое и, предпочтительно, параметризуемое, чтобы я мог использовать их повторно, но у меня возникли проблемы при этом.Мидже говорит мне что-либо кроме вышеупомянутого, не ожидаемая фоновая форма.

1 Ответ

2 голосов
/ 11 февраля 2012

Мидж не имеет встроенной способности делать то, что вы просите. Если вам это нравится, рассмотрите возможность добавления его в качестве проблемы здесь: https://github.com/marick/Midje/issues?sort=updated&direction=desc&state=open&page=1

Решением является создание собственного макроса для этого. (Непроверенные)

(defmacro against-my-background [docstring & body]
  `(against-background [(before :contents (setup!)) 
                        (before :contents (data)) 
                        (before :facts (set-access)) 
                        (after :contents (teardown!)]
     (facts ~docstring
       ~@body )))

;; usage
(against-my-background "about this thing i am testing"
  (fact (foo) => :bar)
  (fact (foo) =not=> :baz))
...