Перемешивание в спящий режим с использованием mockmvc и mockito
Я использую Hibernate в моем проекте и ниже мой код Java.
public class TestInstancesDaoImpl implements TestInstancesDao {
private final static String sqlQueryForTestInstances =
"SELECT tc.testCycleId,tc.testId,tc.status,
tc.executionDate,tc.executionTime,tc.testInstanceNumber,
tc.testerName,tc.testId,t.testName,t.testType,
tc.analysis from TestInstance tc, Test t where tc.cycleId = :cycleId"
"AND tc.testId = t.testId ORDER BY tc.executionDate desc,tc.executionTime desc";
public List<TestInstance> getAllTestInstances(String domainName,
String projectName, Long testSetId,String server) throws CustomException {
String dbName = almDatabaseDao.getDBName(domainName, projectName, server);
List<TestInstance> testInstanceList = new ArrayList<TestInstance>();
List<?> list = null;
Transaction tx = null;
try {
tx = session.beginTransaction();
Query q = session.createQuery(sqlQueryForTestInstances);
q.setParameter("cycleId", testSetId);
list = q.list();
StringBuilder testCycleIds = new StringBuilder();
ListIterator<?> it = list.listIterator();
while (it.hasNext()) {
Object[] testInstanceObject = (Object[]) it.next();
if (testInstanceObject[0] != null) {
int testCycleId =Integer.parseInt(testInstanceObject[0].toString());
testInstance.setTestCycleId(testCycleId);
testInstanceList.add(testInstance);
}
}
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
} finally {
session.close();
}
return testInstanceList;
}
Ниже приведен мой код модульного тестирования. Возникла ошибка - java.lang.ClassCastException: java.util.ArrayList не может быть приведен к [Ljava.lang.Object; итерируя по списку Object[] testInstanceObject = (Object[]) it.next();
Список, возвращаемый из спящего режима, будет иметь вид приведенной ниже структуры - [[Ljava.lang.Object; @ 79e2764b, [Ljava.lang.Object; @ 2c47471]]
Как построить приведенный выше список для насмешек, аналогичных списку, возвращенному из спящего режима?Cananyone помогите мне, как решить эту проблему?
@Test
public void testGetAllTestInstancesImpl(){
String domain = "XXX";
String server = "XXX";
String projectName = "XXX";
String dbName = "XXXX";
Object [][] a = {{1,1,"Blocked","20160622","12:29:23",1,"",1,"XXX","MANUAL","test 404"}};
Long testSetId = 1L;
List<?> defectList = null;
ArrayList<List<?>> alist = new ArrayList<List<?>>(1);
List<List<?>> list = alist;
List<?> listNew = twoDArrayToList(a);
list.add(listNew);
ListIterator<?> it = list.listIterator();
List<TestInstance> testList = getTestInstanceList();
TestInstancesDaoImpl testInstancesDaoImpl = new TestInstancesDaoImpl();
testInstancesDaoImpl.setALMDatabaseDao(almDatabaseDao);
PowerMockito.mockStatic(HibernateUtil.class);
when(almDatabaseDao.getDBName("XXX", "XX", "Staging")).thenReturn(dbName);
when(HibernateUtil.getSession(dbName, "Staging")).thenReturn(session);
when(session.beginTransaction()).thenReturn(transaction);
when(session.createQuery(sqlQueryForTestInstances)).thenReturn(q);
when(q.setParameter("cycleId", testSetId)).thenReturn(q);
when(q.list()).thenReturn(list);
when(session.createQuery(sqlQueryForDefects)).thenReturn(query);
when(query.setParameter("cycleId", testSetId)).thenReturn(query);
List<TestInstance> testInstanceList= testInstancesDaoImpl.getAllTestInstances(domain, projectName, id, server);
}