Я пытаюсь настроить тест с mockrunner в первый раз. Соединение установлено, но я получаю пустой набор результатов. Вот сгущенное рабочий пример:mockrunner jdbc - нет столбцов/строк в результирующем наборе
import com.mockrunner.jdbc.BasicJDBCTestCaseAdapter;
import com.mockrunner.jdbc.StatementResultSetHandler;
import com.mockrunner.mock.jdbc.MockResultSet;
public class ExtractDataTest extends BasicJDBCTestCaseAdapter {
@Test
public void test() throws Exception {
StatementResultSetHandler statementHandler = getJDBCMockObjectFactory()
.getMockConnection().getStatementResultSetHandler();
MockResultSet resultMock = statementHandler.createResultSet();
resultMock.addColumn("ID", new Object[]{"1"});
resultMock.addColumn("USERNAME", new Object[]{"foobar"});
statementHandler.prepareGlobalResultSet(resultMock);
Connection con = DriverManager.getConnection("a", "b", "c");
System.out.println(con); //[email protected]
PreparedStatement stmtObjects = con.prepareStatement(
"SELECT * FROM USER");
ResultSet rs = stmtObjects.executeQuery();
System.out.println(rs); // empty result set
System.out.println(this.getExecutedSQLStatements()); // []
}
}
Ожидаемый выход представляет собой набор результатов с «1» и «Foobar», а также утверждение SQL, который выполняется.
Если я передаю заявление SQL в 'ExecuteQuery()' он работает, как ожидалось. Хотя для Подготовленного утверждения это не обязательно. Нормальные заявления также работают, как и ожидалось. – phobic
Существуют методы, специфичные для объектов PreparedStatement: 'getJDBCMockObjectFactory(). GetMockConnection(). GetPreparedStatementResultSetHandler()' и 'getPreparedStatements()'. Но я все равно получаю пустой набор результатов, хотя я их использую. – phobic