2012-04-17 75 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