Java 自己创建一个ResultSet对象

Java 自己创建一个ResultSet对象,java,resultset,Java,Resultset,我想为一个类创建一个Testclass,它从数据库中读取数据并进行转换。testclass应该测试这个转换函数。但是为了测试这个函数,我需要一个ResultSet对象 在没有数据库连接的情况下,如何在ResultSet对象中填充一些数据?从数据库读取数据涉及集成测试,而不是单元测试。因此,您可以而且应该使用原始的ResultSet,因为集成测试需要考虑真实的后端(如数据库) 如果您试图对逻辑进行单元测试,请存根或模拟名为part的特定DAO,以便返回要测试的样本数据。但在这种情况下,根本不要调用

我想为一个类创建一个Testclass,它从数据库中读取数据并进行转换。testclass应该测试这个转换函数。但是为了测试这个函数,我需要一个ResultSet对象


在没有数据库连接的情况下,如何在ResultSet对象中填充一些数据?

从数据库读取数据涉及集成测试,而不是单元测试。因此,您可以而且应该使用原始的
ResultSet
,因为集成测试需要考虑真实的后端(如数据库)


如果您试图对逻辑进行单元测试,请存根或模拟名为part的特定DAO,以便返回要测试的样本数据。但在这种情况下,根本不要调用数据库(不要处理
ResultSet

类似于下面的代码: 您需要一个接口来访问数据库。 您在代码和测试代码中使用的此接口: myDbConnectionMock是一个模拟对象,它具有与Db连接相同的接口, 但它是您创建的对象,您可以在其中填充所需内容:

我不会使用Mockito或更糟糕的EasyMock

我在texteditor中输入的代码(希望是可编译的,也许不是):

public void testDBConnection(){
IDataBaseConnection conn=新的MyDbConnectionMock();
连接();
设置结果=连接读取数据();
assertTrue(result.size>0);
}
在哪里

 // Interface for DB connection, adapt to real DB connection
    public interface IDataBaseConnection {
       boolean connect();
       Set<Result> readData();
    }
//数据库连接接口,适合真正的数据库连接
公共接口IDataBaseConnection{
布尔连接();
设置readData();
}

//数据库连接模拟
类MyDbConnectionMock实现IDbConnection{
公共void connect(){
返回true;
}
公共集readData(){
Set resultSet=new HashSet();
结果res1=新结果(20);
结果集添加(res1);
结果res1=新结果(30);
结果集添加(res2);
返回结果集;
}
}

Willkommen。尝试使用mockito或。Vogel在这里做了一个很好的教程:
 // Interface for DB connection, adapt to real DB connection
    public interface IDataBaseConnection {
       boolean connect();
       Set<Result> readData();
    }
// DB connection Mock
class MyDbConnectionMock implements IDbConnection {
  public void connect() {
     return true;
  }

  public Set<ResultSet> readData() {
     Set<Result> resultSet = new HashSet<Result>();
     Result res1 = new Result(20);
     resultSet.add(res1);

     Result res1 = new Result(30);
     resultSet.add(res2);
     return resultSet;
   }
}