静态字段的JUnit的初始化(JUnit initialization of static fiel

2019-10-21 02:29发布

我使用JUnit单元测试。 比方说,我想测试类B (类的方法B )。 比方说,我们有另一个类A是主类(含main方法),并具有一定的protected static字段。

现在,它是该类案件B使用一些类的这些静态字段的A 。 所以,如果我测试类B类的这些静态字段A不存在。

如何测试类B不执行(执行类节目A )?

编辑:我要澄清它。 假设我们有以下的A类放在src /包1 / classA.java:

public classA {
   protected static int field1;
   protected static int field2;

   public static void main(String[] args) {
      // initialize static fields.
   }
}

现在让我们假设有在同一个包的src /包1 / classB.java另一个B类。

public ClassB {
       public ClassB() {
            // Do some stuff.
       }

       public void someMethod() {
           // Access of static fields from A.
           classA.field1....
           classA.field2....
       }          
}

现在我有一个测试B级测试/包1 / classBTest.java JUnit测试,但问题是,field1的和Field2不被初始化。

我怎样才能在手动初始化的JUnit两个领域classA.field1和classA.field2不执行A类的主要方法是什么?

Answer 1:

你可以称之为CLASSA .IE ClassA.main(somestrArray)的主要方法,它应该做的初始化。

但是,如果你不想这样做,那么你可以在同一个包创建JUnit测试的原始类,你将能够访问受保护的变量.IE ClassA.field1 = 1; 等等。顺便说一下它并不一定要在同一个项目,就在包名应该是相同的。

如果那也不行,那么你就需要重构你的ClassA的允许这种情况下.IE有确实的方法初始化等。



文章来源: JUnit initialization of static fields