使用singleton类在java中调用junit测试用例中的方法

时间:2013-11-22 07:29:38

标签: java database class junit singleton

我是java和junit的新手。 我有测试/页面测试的一些测试用例,如addTest.java,deleteTest.java。 我已经使用下面的代码在junit测试套件中包含了这些测试

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({
addTest.class,
deleteTest.class
})
public class JunitTestSuite {  
}  

所有这些测试用例都使用db的输入。为此,我在TestDBMethods.java中编写了一个名为getValues的方法,它位于路径test / testdb中,它返回我在测试用例中需要的所有值。

我面临的问题是我不想在每个测试用例中调用TestDBMethods.java类,因为这非常昂贵。所以我更喜欢包含一个单独的类,它只调用一次TestDBMethods.java并返回一个应该被所有其他测试用例使用的实例。 任何人都可以帮我编写单例类的代码,该类调用类TestDBMethods.java并返回一个实例。

1 个答案:

答案 0 :(得分:0)

根据您的描述,由于调用TestDBMethods很昂贵,因此您可以将TestDBMethods实现为单例类,而不是调用TestDBMethods的类。

据我所知,我们有很多方法可以实现单例.Below只是一个非常简单的例子:

 public class TestDBMethods{  
      private static TestDBMethods instance;  
      private TestDBMethods(){}   
     public static TestDBMethods getInstance() {  
      if (instance == null) {  
          instance = new TestDBMethods();  
     }  
      return instance;  
      }

  public Object getValues(){
      return null;
  }  
 }  

通过这种方式,您可以使用TestDBMethods.getInstance.getValue()来调用函数getValue(),并且内存中只存在一个实例。

相关问题