2014-09-24 104 views
-1

我不知道爲什麼有人跟我說這個不用靜態導入Mockito方法,而是寫了 單元測試用例。他們說這樣做可能會大大增加內存使用量並導致構建失敗。爲什麼我不應該使用靜態導入Mockito方法?

我想知道他們是對還是錯。請解釋它背後的原因。

請分享鏈接,想法或個人經驗。 謝謝。

+1

我[看到有人抱怨(http://stackoverflow.com/questions/7322705/finding-import-static-statements-for-mockito-constructs)約和的Mockito的hamcrest靜態導入衝突(即類似的方法名稱)。但總體而言,我認爲靜態導入是Mockito的一個有用功能。你能否引用一些對靜態進口產生警告的消息來源,還是與同事進行口頭討論? – 2014-09-24 07:23:44

+0

是的,這些是口頭討論,每個人都開始關注它,這對我來說似乎不合邏輯,這就是我來到這裏的原因。 您提供的鏈接似乎很合理,可能是造成我失敗的原因。 +1 – 2014-09-24 07:29:01

+0

您的IDE將幫助您避免構建失敗;對靜態進口沒有必要害羞。但是,當然如果你的同事做出了風格決定,你可能只需要遵循它。不一致在代碼庫中沒有幫助。 – 2014-09-24 07:30:59

回答

2

我在單元測試中長時間使用靜態導入。從org.junit.Assertorg.mockito.Mockito靜態導入。通過這樣做,語法更簡潔,我的測試更具可讀性。

沒有任何性能問題。這只是一個語法糖:

語法內的一種編程語言,旨在使事情更容易閱讀或表達。 (wikipedia

如果您導入兩個具有相同名稱的方法或常量,則可能會出現問題。 那麼在這種情況下,你將不得不消除歧義。

但是,如果您使用兩個具有相同名稱的不同類(您將不得不使用合格的名稱),則會出現同樣的問題。

import java.awt.List 

... 
java.util.List dataList = new ArrayList(); 
List viewList = new List(); 
+0

@Duncan你是對的。我添加一個鏈接到源。 – gontard 2014-09-25 09:18:52

+0

哦,我誤解了。我沒有意識到你只是定義了語法糖,我以爲你是從某處引用靜態進口。 – 2014-09-25 09:20:02

相關問題