2013-02-03 68 views
2

我正在開發一個項目,其中junit測試的所有成員變量都聲明爲包私有。在junit測試中封裝私有成員變量

例如:

public class MyTest { 

    MyObject someObject; 

    @Before 
    public void setUp() throws Exception { 
     someObject = new MyObject(); 
    } 
} 

相反的:

public class MyTest { 

    private MyObject someObject; 

    @Before 
    public void setUp() throws Exception { 
     someObject = new MyObject(); 
    } 
} 

我知道,原來寫測試的人一般見識,參加了很多會議,已經讀了很多書。所以我想知道他在哪裏可以選擇這個,這背後的理由是什麼?

+0

someObject字段是否被其他類別使用? – imrichardcole

+0

不,他對所有成員變量都這樣做 –

+2

爲什麼不問問寫這個 –

回答

0

與其他任何東西一樣,這可以是一種風格。有些人傾向於默認情況下是私密的,然後根據需要打開範圍。也許他使用的IDE默認打包私人。要回答爲什麼有人可能這樣做,真的很難回答。

我會說在這種情況下,你最好是私人。但是沒有看到代碼的其餘部分,很難說。如果從別處使用它,那麼也許你會考慮創建一個基本測試類,其他測試擴展到捕獲一些常見功能。在這種情況下,你會給出一個名稱來反映它的目的。

+0

我們使用相同的IDE,所以不是絕對有意的,在任何地方都沒有繼承。 –

+0

有時您可以在開發人員級別更改這些內容。例如,我們可以共享相同的IDE,但由於不可續性的原因,我傾向於私人最終字段。在這種情況下,我仍然堅持私下談話。包私有可能導致兩個類之間的依賴關係,你可能不需要它。 – imrichardcole