2013-02-03 34 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