2012-04-17 118 views
2

有沒有什麼辦法可以訪問其他類的私有變量。實際上,我正在爲我的庫項目編寫測試用例,以便在應用程序崩潰時測試所有可能的關鍵條件。我的項目應該通過所有測試用例。現在我應該檢查在我的庫項目中聲明爲私有變量的問題。是否有任何方法可以訪問這些變量(聲明爲私有變量)。如何訪問私有變量

+0

一個很好的問題 - 一方面是你想你的代碼是作爲組分本地範圍的可能,在其他測試套件必須能夠訪問內部。有沒有解決這個問題的方法? – Elemental 2012-04-17 11:12:49

回答

3

使用getters and setters ..它是首選的方式。在制定者一定要保持安全值,並確保他們不會破壞你的代碼在任何情況下..

0

在Android上,你想使你的活動私有方法阻止其他類認爲他們可以訪問它(片段可以,但這對我來說是錯誤的做法,最好使用可觀察的觀察者模式)。然後你將最終得到只需要通過測試訪問的私有字段和方法。

BoundBox確實如此!這裏下面是訪問2個活動的私人領域,以測試它測試的例子:

@UiThreadTest 
public void testCompute() { 
    // given 
    boundBoxOfMainActivity = new BoundBoxOfMainActivity(getActivity()); 

    // when 
    boundBoxOfMainActivity.boundBox_getButtonMain().performClick(); 

    // then 
    assertEquals("42", boundBoxOfMainActivity.boundBox_getTextViewMain().getText()); 
} 
0

在java中我們可以使用公共訪問修飾符private修飾符。 公共修飾符可能是getter/setter或方法。

例如,有用戶類擁有id和show()私有類型。這些私有的修飾符可以通過公共方法display()訪問外部類用戶。

class user{ 
    private int id; 
    private void show(){ 
     sysout.out.println("show called"); 
} 

public void display(){ 

    System.Out.Println(" id ="+ id); 
    show(); 

} 

} 

public class Test{ 

Public Static Main(){ 

    User user = new User(); 

    //user.id; //CE 
    //user.show(); //CE 

    user.display(); 
    } 
} 

你可以參考這篇文章也爲更多的細節: how to access private data outside class