2013-04-08 111 views

回答

2

每次運行單元測試時,都會獨立調用每個測試用例。在每個測試用例運行之前,調用setUp方法,之後調用tearDown方法。

所以,如果你想分享測試中的道理,你應該添加

token = @"sample"; // or smth else 

您的設置方法。

+0

謝謝!那麼,如果我想將我的一個測試的輸出用作另一個測試的輸出結果呢?有什麼辦法可以做到這一點? – neutrino 2013-04-08 14:54:35

+1

單元測試應該獨立運行。如果不是,他們不再是單元測試。 – 2013-04-08 14:58:17

+0

我明白了...謝謝! – neutrino 2013-04-08 15:01:48

0

執行測試方法的順序不能保證,所以可能是testBtestA之前運行,甚至在將來它們並行運行。

+0

我不認爲並行運行測試是可能的,因爲它會在共享資源(例如單例)上崩潰。並行運行測試只有在您測試的東西是同步時纔有意義。 – Sulthan 2013-04-08 15:10:23

+0

是的,重點更多的是理論上的問題。一個更好的例子可能是,測試運行者理論上可以根據自上次運行以來代碼發生了哪些變化,找出哪些測試不需要再次運行。 – 2013-04-08 15:13:56

1

據我所知,當前的實現按照字母順序運行測試方法,所以你的例子應該運行沒有問題。

通常情況下,如果我想要的東西,首先要測試的,我的名字test1_criticalFeaturetest2_dependentFeatures

+0

謝謝蘇丹。這是正確的,但無論如何變量被摧毀。我認爲爲每個測試都創建了一個「SampleTests」的新實例。 – neutrino 2013-04-08 19:13:48

+0

@neutrino我不認爲這是真的。我很確定我在一個測試課程中的測試之間共享了一些對象。這是在一個類中有幾個測試方法的整個概念。 – Sulthan 2013-04-08 19:17:57

+0

然後我不知道發生了什麼......你認爲我的代碼有什麼不對嗎? – neutrino 2013-04-08 19:22:56