J'essaie de simplifier un 1er bloc de code d'un cas de test à quelque chose de similaire montré dans le 2ème bloc de code. J'ai deux questions:Comment créer et affirmer une liste Mockito d'objet personnalisé?
- Puis-je mocker une liste d'objets personnalisés? Puis-je affirmer une liste mockée d'objets personnalisés avec les champs d'une liste d'objets retournée?
Quelque chose de similaire est-il réalisable?
@Test
public void testStudentSuccess() {
Student st = new Student();
st.setRollNumber("1234");
st.setFeeAmount("1000");
List<Student> stList = new ArrayList<Student>();
stList.add(st);
Map<String, Object> simpleJdbcCallResult = new HashMap<String, Object>();
simpleJdbcCallResult.put("X_GET_DATA", stList);
when(simpleJdbcCall.getSimpleJdbcCall(any(String.class), any(String.class), any(String.class),
any(String.class), any(String.class), any(String.class), any(String.class), any(String.class),
any(StudentRowMapper.class))).thenReturn(simpleJdbcCallResult);
List<Student> studentList = opusPackageRepo.getPolicyStudent("123", "123");
Student student = studentList.get(0);
assertEquals(student.getRollNumber(), "1234");
assertEquals(student.getFeeAmount(), "1000");
}
Pour quelque chose comme ça (voir les commentaires -> //):
@Test
public void testStudentSuccess() {
List<Student> stList = Mockito.mock(new ArrayList<Student>()); // 1. IS SOMTHING SIMILAR TO THIS POSSIBLE?
Map<String, Object> simpleJdbcCallResult = new HashMap<String, Object>();
simpleJdbcCallResult.put("X_GET_DATA", Mockito.mock(new ArrayList<Student>()));
when(simpleJdbcCall.getSimpleJdbcCall(any(String.class), any(String.class), any(String.class),
any(String.class), any(String.class), any(String.class), any(String.class), any(String.class),
any(StudentRowMapper.class))).thenReturn(simpleJdbcCallResult);
List<Student> studentList = opusPackageRepo.getPolicyStudent("123", "123");
assertEquals(studentList, stList); // 2. CAN I ASSERT EQUALS A MOCK WITH A RETURNED LIST?
}
La seule chose qui vaut la peine de se moquer ici est opusPackageRepo. Quel est le point de se moquer d'une liste ici –
Je pense que la réponse ci-dessous par @glitch était ce que je cherchais - "Votre test n'a pas besoin de connaître le contenu de cette liste" – nanospeck