3

有什么方法可以访问其他类的私有变量。实际上,我正在为我的库项目编写测试用例,以便在应用程序崩溃时测试所有可能的临界条件。我应该以这样的方式编写,即我的项目应该通过所有测试用例。现在我的问题是我应该检查在我的库项目中声明为私有的变量。有没有办法访问这些变量(声明为私有)。

4

3 回答 3

4

使用getter 和 setter .. 这是首选方式.. 在 setter 中确保您保留安全值并确保它们在任何情况下都不会破坏您的代码..

于 2012-04-17T11:11:08.277 回答
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());
}
于 2013-09-17T05:58:09.893 回答
0

在 java 中,我们可以使用 public 修饰符访问 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();
   }
}

您还可以参考这篇文章了解更多详细信息: 如何在课堂外访问私有数据

于 2015-11-05T12:45:51.317 回答