2016-11-12 48 views
0

我找不到任何Midje在所有事實之後運行的函數。JUnit AfterClass在Midje Clojure中是否相當於?

下面是代碼:

(background 
    (before :contents (println "Before All Facts")) 
    (after :contents (println "After All Facts")) 
    (before :facts (println "Before Each Fact")) 
    (after :facts (println "After Each Fact"))) 

實際輸出是:

Before All Facts 
After All Facts 
Before Each Fact 
After Each Fact 

預期輸出是:

Before All Facts 
Before Each Fact 
After Each Fact 
After All Facts 
+0

以下是github問題:https://github.com/marick/Midje/issues/374 –

+0

這似乎不是一個問題,但是一個錯誤 - 作者認爲這個錯誤顯然不能修復,至少根據你的github問題。 – schaueho

+0

這是一個已棄用功能「背景」中的錯誤。這個特性已經被'with-state-changes'和'namespace-state-changes'所取代,它支持你想要的。 – Conan

回答

1

你可以將所有事實包含在with-state-changes中以實現此目的,但請注意,Clojure對最高級別表單的最大大小有限制。爲避免該問題,您可以使用namespace-state-changes在整個文件的開頭和結尾執行設置和拆卸。

+0

我需要AfterClass後:)我猜Midje不支持這個。 –

+0

您可以通過這種方式在所有事實之後運行代碼,在您的問題中生成輸出。在實際的命名空間執行後,將不可能中斷執行。你爲什麼需要這樣做? – Conan

+0

您能提供代碼示例嗎? –

相關問題