У меня есть интерфейс ShoppingListDAO, как показано ниже.Стыковка объектов db с помощью PowerMock-easymock
public interface ShoppingListDAO extends GenericDAO<Object, String> {
public List<ShoppingList> getShoppingList(Department department) throws ShoppingListDAOException;
}
И его реализация Класс DAO - это что-то вроде ниже.
public class ShoppingListDAOImpl extends GenericCustomDAO<Object, String> implements ShoppingListDAO {
//.......
public List<ShoppingList> getShoppingList(Department department) throws ShoppingListDAOException {
try {
ds = getDataSource();
connection = ds.getConnection();
callableStatment = connection.prepareCall(SHOPPING_LIST_QRY1);
callableStatment.setString(1, department.getDistributorNumber());
//......
callableStatment.registerOutParameter(4, OracleTypes.CURSOR);
callableStatment.execute();
resultSet= (ResultSet) callableStatment.getObject(4);
while(resultSet.next()) {
//.......
}
} catch (SQLException e) {
e.printStackTrace();
throw new ShoppingListDAOException(e);
} catch (Exception e) {
e.printStackTrace();
throw new ShoppingListDAOException(e);
}finally{
//......
}
}
return shoppingList;
}
Теперь у меня есть требование, чтобы проверить мой реализованный класс DAO, используя Mock дб Objects.I просмотрел POWERMOCK документации/EasyMock, но я предполагаю, что большинство из API методов дает мне объекты, которые предоставляют мне фиктивный класс реализации интерфейса DAO ,
является Там каким-то образом я могу создать фиктивный объект подключения (при условии, что я не имею физический доступ к базе данных) и могу работать последующий код, предоставленный в моем
ShoppingListDAOImpl
классе , как я должен использовать это насмешливый для покрытия коды цель?если есть способ я могу сделать
callableStatement.execute()
возвращать данные пустышки или Exception (Withour физического доступа к базе данных), так что я могу проверить его в моих тестов JUnit?
Я совершенно новый для насмешливого фреймворка. Возможно, мои требования нереалистичны. Любая информация будет полезна.
Thx за предложение, я постараюсь узнать и использовать базу данных в памяти. – Rahul
Но могу ли я использовать насмешку ... Я имею в виду, если я буду moke Connection, то CallableStatement, а затем resultet, возможно ли это? Этот способ я могу получить любой вывод, который я хочу из метода «выполнить» ??????? – Rahul