Я хочу провести модульное тестирование следующим методом
public void addRecord(Record record)
{
Myclass newObj = new Mycalss();
// It creates newObj object, set some values using record object.
// and it adds the newObj in daatbase.
dataReqDao.persist(newObj);
}
Я смоделировал метод dataReqDao.persist
, но как я могу проверить, копируются ли правильные значения в объект newObj?Я хочу получить объект newObj.
Я думаю, thenAnswer
будет подходящим методом для извлечения newObj, т.е. аргументов метода, но не знаю, как использовать этот метод, который возвращает void.
Обновление:
Я пытался
doAnswer(new Answer<Myclass>() {
public Myclass answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
return (Myclass)args[0];
}
}).when(dataReqDao.persist(any(Myclass.class)));
РЕДАКТИРОВАТЬ:
Это должно быть (Спасибо Дэвид)
doAnswer(new Answer<Myclass>() {
public Myclass answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
return (Myclass)args[0];
}
}).when(dataReqDao).persist(any(Myclass.class));